2010-06-24 118 views
5

我的ajax(jquery)響應(html)給了我一大堆html源代碼,因爲它提取了enrite頁面。讀取ajax html響應的一部分

的反應是有點像如下:

 

<html> 
<head> 
... 
... 
</head> 
<body> 
. 
..... 
. 

....... 

<div id="content"> 
    content i want to extract 
</div> 
............. 
.......... 
............. 

</body> 
</html> 

我需要用以下幫助:

1)是否有可能只閱讀什麼是<div id='content'></div>之間?如果是的話,怎麼樣? 2)如果#1不可能,我怎樣才能從<div id='content'></div>中提取內容?

的代碼我想:

 

    /*Ajax*/ 
    $jq(function(){ 
    alert ("Doc ready"); 
     $jq("#content a.next-page").bind("click", function(e){ 
      alert ("Hey!"); 
      /*Make the call*/ 
      $jq.ajax({ 
       url: "/page/2", 
       type: "get", 
       cache: false, 
       data: "", 
       error: function(){alert ("No data found for your search.");}, 
       success: function(results){ 
        //$searchPanel.find("tbody").empty().append(results); 
        //$searchPanelHolder.css({"display":"block"}); 
        alert (results.find("div[id='content']").html()); 
        e.preventDefault(); 
       } 
      }); 
      e.preventDefault(); 
     }); 
    }); 

任何幫助是非常讚賞

非常感謝, Racky

+1

胡斯塔一般評論;既然你直接抓取一個html頁面而不通過後端「橋」,我認爲這個頁面是在你自己的域中,這個腳本來自同一個域。在這種情況下,您應該花時間開發一個PHP(或其他任何)腳本,直接觸發數據庫,​​並以JSON或XML格式返回您感興趣的數據。這樣,即使您更改該頁面的標記,您的JS代碼段也可以工作。 – 2010-06-24 13:30:45

+0

你應該檢查某人的答案是否正確。 – Mark 2010-06-25 23:23:54

回答

0

是的,這是可能的,但你需要先製作一個jQuery對象。

改變這一行:

alert (results.find("div[id='content']").html()); 

這樣:

alert ($(results).find("div[id='content']").html()); 

,或者更好的,這樣的:

alert ($(results).find("#content").html()); 

編輯:

看起來,如果你想要的元素是body直接孩子,你需要使用.filter(),而不是因爲body似乎是從jQuery對象中排除。看起來只是其內容被包括在內。

alert ($(results).filter("#content").html()); 
+0

謝謝一噸:)這也工作! – racky 2010-06-24 13:38:31

+0

@racky - 不客氣。 :o)FYI使用'.find()'比* $(「#content」,results)快* * * *,因爲jQuery只是將它轉換成'.find()'。不過,這不會有明顯的不同。 – user113716 2010-06-24 13:39:05

+0

嘿再次感謝,另一個小問題,現在我得到所需的數據與您的善意幫助。我現在正在做的是清空div中的舊內容[$(「#content」))。空()]並附加新檢索的數據[.append(newdata)]。但是這個奇怪地將頁面重新加載到空白頁面!有關於此的任何想法? – racky 2010-06-24 13:54:28

1

這是怎麼回事?

$("#content", results).html() 
+0

謝謝一噸:)這工作! – racky 2010-06-24 13:37:11