2010-04-12 27 views
0

是否可以使用ajax加載html文檔,然後在加載的html上執行jquery選擇?在ajaxed html內容上執行jQuery選擇

我想對遠程搜索服務器執行搜索,然後使用結果重新格式化現有頁面。

編輯:find函數似乎不會返回結果(長度始終爲0)。這裏是樣本HTML

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
</head> 
<body> 

    <p>Hello world</p> 

    <p>good bye world</p> 

</body> 
</html> 

這裏是jQuery的:

$(document).ready(function() { 

    $.ajax({ 
    url: 'content/HTMLPage.htm', 
    dataType: 'html', 
    success: function(data) { 

     alert($(data).find('p').length); 

    } 
    }); 
}); 

回答

0

我真的很掙扎着。我已經設法加載一個完整的文檔並正確選擇,但是這個文檔有一個文檔類型。

否則,它似乎是可能的,但它有它的警告。您正在選擇的項目需要至少有一個父節點。我真的不認爲我可以標記任何東西作爲答案。

此HTML返回2個元素:

<div> 
    <p>Hello world</p> 

    <p>good bye world</p> 
</div> 
0

你可以,如果你能...

你只可以使用

var result = $(returned_html) ; 

ajax成功處理程序,然後執行result.find('#id_of_anything')。 你的ajax調用在這裏應該有'dataType''html'。

你的問題是,「遠程搜索服務器」調用一個'遠程域',由於ajax同源策略,它不會產生 。

0

是否有可能使用ajax加載html文檔,然後對加載的html執行jquery選擇? -

您可以通過使用live()delegate()

+0

注意,我不是這個加載到頁面的DOM,所以生活()和委託()不是與此有關。謝謝。 – 2010-04-12 10:47:19

0

您可以使用類似這樣處理事件:

$.get(url, function(data) { 

    $(data).find(); 

}); 

你基本上包裹在一個jQuery對象返回的HTML內容。然後你可以使用jQuery選擇器。