2015-10-19 75 views
1

我使用$ .ajax加載頁面內容。作爲響應,我將整個html文檔作爲字符串獲取,但我想通過使用div的id來獲取響應中唯一的特定div內容。我無法更改回應,我無法使用$ .load方法。提前致謝。使用ajax加載特定的div內容

$.ajax({ 
    url: ajax_url, 
    type: "GET", 
    dataType: "html" 
}).done(function(data) { 
}).fail(function(jqXHR, textStatus, errorThrown) { 
}); 
+1

只顯示一些代碼? – Hydro

+0

$阿賈克斯({ 網址:ajax_url, 類型: 「GET」, 數據類型: 「HTML」 })。完成(功能(數據){// 這裏我要來從響應的具體內容股利。 (function(jqXHR,textStatus,errorThrown){ }); –

+0

如何在HTML片段部分使用[load()](http://api.jquery.com/load/#loading-page-fragments)? (它接受任何CSS選擇器,不僅ID) –

回答

1

在你.done()方法:

.done(function(data) { 
    $('#target').html($(data).find('#specificDivId')) 
}) 
0

由於AJAX返回一個純文本,您可以將其轉換爲jQuery的DOM元素,修改和追加(或替換HTML)到您的HTML。

例如,像這樣:

$.ajax({ 
    url: ajax_url, 
    type : "GET", 
    dataType : "html" 
}).done(function(data) { 
    var obj = $(data); 
    $("#yourdiv").html(obj.find(".something").html()); 
}).fail(function(jqXHR, textStatus, errorThrown) { 

}); 

我用.find(".something"),因爲我不知道收到的郵件的格式。你可以使用任何jQuery方法。

1

您可以像處理當前頁面的DOM一樣遍歷請求返回的HTML。試試這個:

$.ajax({ 
    url: ajax_url, 
    type: "GET", 
    dataType: "html" 
}).done(function(html) { 
    var $divToFind = $(html).find('#myDiv'); 
    $divToFind.appendTo('#targetElement'); 
}).fail(function(jqXHR, textStatus, errorThrown) { 
    // handle the error... 
}); 

或者,你可以使用其內置了這個功能load()方法:

$('#targetElement').load(ajax_url + ' #myDiv'); 
0

你想要什麼基本上是什麼AJAX速記方法load()使用頁面frament做:

$('#divToAddContent').load(ajax_url + ' #divToGetContent'); 

(注意起始片段選擇符字符串處的空格)