我想使用AJAX加载HTML页面(在同一台服务器上),在加载的HTML页面中找到一个元素并将其添加到正文中。我不能使用jQuery .load()
函数,因为我需要预先添加元素而不是替换它。
由于某种原因,这样的事情:
$.ajax({
url: 'test.html',
success: function(data) {
$el = $('.element', data);
// Returns empty object
console.log($el);
}
});
不起作用,但.element
中存在data
元素。我还尝试使用.find()
here(最后一个答案),但它也不起作用。我做错了什么?
答案 0 :(得分:0)
我加载的HTML页面看起来或多或少像:
<html>
<head>...</head>
<body>
<div class="element">Test</div>
</body>
</html>
感谢@ A.Wolff,他指出jQuery在包装时会删除HTML和BODY标记。因此,.element
不是后代,.find()
或$('.element', data)
不起作用。
无论如何,您只需使用:
$('<div/>',{
html: data
}).find('.element');
......或者在这种情况下简单地说:
$(data).filter('.element');