2015-10-19 47 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'); 

(注意起始片段选择符字符串处的空格)