2011-06-18 25 views
0

我遇到了一個獨特的問題。我正在做一個簡單的Ajax調用,使用jQuery來獲取HTML文件的內容。我怎樣才能從HTML使用jQuery的Ajax方法獲得DOM元素?

$.ajax({ 
    url: "foo.html", 
    dataType: "html", 
    success: function(data){ 
    console.log(data); 
    } 
}); 

foo.html是一個簡單的html文件,帶有一個名爲#mainContainer的主div。我想要做的就是從mainContainer獲取所有內容,並將它們存儲在一個var中,這樣我就可以將它們添加到頁面某處的另一個div中。

這是index.html(打電話的文件)。

這是foo.html(我試圖調用和解析的文件)。

回答

4

jQuery的「.load()」 API做你問什麼了:

$('#the_target_div').load("foo.html #mainContent", function() { 
    // stuff to do when content is ready 
}); 

您只需在URL後選擇字符串,用空格隔開。

有一點需要注意:如果加載的頁面中有任何重要的JavaScript(在<script>標籤中),那麼當您加載頁面時,腳本將不會運行。如果你需要這種行爲,那麼你必須自己提取內容(這是一個小問題),否則讓你的服務器完成這項工作,並只用你需要的片段進行響應。

一個完全不同的方法是將您的頁面加載到隱藏的,然後深入該DOM找到你想要的。然後它可以被複制到主頁面中。

+0

非常真棒,我知道這是一件容易的謝謝! –

2

VAR mainContainerInnerHtml = $(數據).find(「#mainContainer上)的.html();

0

你並不需要獲得DOM元素 您可以使用查詢功能replaceWith更換

。就像這樣:。

$("#data").replaceWith($("#data",ajaxReturnHtml)).serialize(); 

它的作品對我