2009-06-03 66 views
0

文件的一部分,我有一些非常簡單的示例代碼:獲取僅從jQuery的AJAX

$.ajax({ 
    url: 'demo2.htm', 
    success: function(loadeddata){ 
    $("#loaded_data").after(loadeddata); 
    alert('success'); 
    }, 
    error: function(){ 
    alert('failure'); 
    } 
}); 

加載數據返回當前的一切。我需要的只是獲取特定的div,並將其添加到#loaded_data之後。

我該怎麼做?

謝謝!

+0

[在jQuery中提取部分HTML文檔]可能的副本(https://stackoverflow.com/questions/2137811/extract-part-of-html-document-in-jquery) – 2017-07-03 05:39:40

回答

4

這是jQuery的是如何做的內部:

$("<div/>").append(loadeddata).find('#mydiv'); 

如果你希望有SCRIPT標籤的HTML,你應該拋出這樣以避免任何「權限被拒絕」的IE錯誤:

$("<div/>").append(loadeddata.replace(/<script(.|\s)*?\/script>/g, "")).find('#mydiv'); 

編輯

你缺少了什麼是應該發生的點。

通過做$("<div/>").append(...); jQuery創建一個虛擬<div>並讓瀏覽器通過將其插入<div>內部來解析HTML。一旦完成,我們可以找到我們想要的DIV,並返回HTML。所以我應該在上面放的更正確的代碼示例如下:

var html = $("<div/>").append(loadeddata).find('#mydiv').html(); 
$('#whereIwantIt').html(html); 

正如你可以在鏈接,this does what you want見。

+0

感謝您的幫助。我不確定這裏發生了什麼事。但我無法得到這個工作。 http://jsbin.com/avamo 我只想添加#hello到頁面。我不確定爲什麼ajax完成後它變成了白色。但在閃光燈中,我看到整個頁面被添加,而不僅僅是我指定的部分。 謝謝。 – Mark 2009-06-03 13:44:55

0

好的,這裏有一個新的pastebin,其中包含find和paolo提到的腳本問題。

http://jsbin.com/esoze/edit

正如你可以看到整個頁面的HTML嵌入,而不僅僅是指定的元素。