2013-02-12 63 views
2

我接收到ajax响应为html,并且我需要提取指定div的内容。ajax响应的jquery选择器

它的工作原理:

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') 

我可以在不过$(数据)使用一个选择?

+0

PL发表您的标记。 – Meherzad 2013-02-12 10:02:57

+0

将数据转储到div中,然后应用选择器'$('someDIV')。html(data)',然后使用您的代码 – asifsid88 2013-02-12 10:03:47

+0

您可以发布console.log(data)返回的内容吗? – freshbm 2013-02-12 10:05:37

回答

4
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"); 
+0

但是我不能通过一个选择器来做,对吧? – indapublic 2013-02-12 10:11:32

+0

是的,请参阅编辑答案。 – Barmar 2013-02-12 10:15:11

+0

是的,“发现”现在工作。谢谢你,巴尔玛 – indapublic 2013-02-12 10:16:27