我有一个jQuery ajax调用:
$.ajax ({
url : 'foo/bar/',
success: function(data) {
console.log(data);
var newHeaderText = $(data).find('#header-text').text();
$("#header-text").text(newHeaderText);
var newContent = $(data).find('#content').html();
console.log(newContent);
$("#content").html(newContent);
}
});
记录的data
成功显示目标页面的完整html。
header-text
部分按预期工作。
然而,console.log(newContent)
会返回undefined
。如果没有在这里发布foo/bar/
的整个html,那么就可以说我非常确定content
中有一个id为data
的div,并且它有很多子元素。
为什么我尝试抓取一个页面的内容并将其放入另一个无法正常工作的页面的内容中。这对我来说尤其令人困惑,因为header-text
似乎工作正常。
答案 0 :(得分:3)
您可以尝试使用$.parseHTML
:
var newContent = $($.parseHTML(data)).find('#content');
如果#content
是顶级元素,那么上面的代码可能仍然会错过它。然后,您可以通过首先在容器中加载HTML来解决此问题,然后在其中找到元素:
var newContent = $('<div>').append($.parseHTML(data)).find('#content');