【问题标题】:Jquery selectors on ajax responseajax响应上的Jquery选择器
【发布时间】:2013-02-12 18:14:51
【问题描述】:

我收到 ajax 响应为 html,我需要提取指定 div 的内容。

有效:

function callback(data) {
    container = $(data).filter('div.container#container');
    container_in = $(container.html()).filter('div.container-in');
    main_container = $(container_in.html()).filter('div#main-container.main-container');
    div_content = $(main_container.html()).filter('div#content.right-block');
}

它返回空

$(data).filter('div#content.right-block')

我可以在 $(data) 上使用一个选择器吗?

【问题讨论】:

  • 将数据转储到 div 中,然后应用选择器 $('someDIV').html(data),然后使用您的代码
  • 你能发布 console.log(data) 返回的内容吗?
  • 你可能应该使用find,而不是filter
  • @freshbm: console.log(data) 返回纯 html。
  • @asifsid88:我认为这不是很好的解决方案。

标签: javascript jquery css-selectors


【解决方案1】:
function callback(data) {
    container = $(data).find('#container');
    container_in = container.find('div.container-in');
    main_container = container_in.find('#main-container');
    div_content = main_container.find('#content');
}

您不需要继续使用.html()$(),因为第一个$(data) 会将所有内容解析为DOM 元素。此外,ID 选择器上的额外标签和类限定符是多余的,因为 ID 必须是唯一的。

您还可以使用单个选择器获取内容:

div_content = $(data).find("#content");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-21
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    相关资源
    最近更新 更多