2013-02-12 64 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