jQuery AJAX在HTML页面中查找元素
我想使用AJAX加载一个HTML页面(在同一台服务器上),在加载的HTML页面中找到一个元素,并将其前置到主体中。我不能使用jQueryjQuery AJAX在HTML页面中查找元素,jquery,html,ajax,Jquery,Html,Ajax,我想使用AJAX加载一个HTML页面(在同一台服务器上),在加载的HTML页面中找到一个元素,并将其前置到主体中。我不能使用jQuery.load()函数,因为我需要预先添加元素,而不是替换它 出于某种原因,比如: $.ajax({ url: 'test.html', success: function(data) { $el = $('.element', data); // Returns empty object consol
.load()
函数,因为我需要预先添加元素,而不是替换它
出于某种原因,比如:
$.ajax({
url: 'test.html',
success: function(data) {
$el = $('.element', data);
// Returns empty object
console.log($el);
}
});
虽然元素
.element
存在于数据中,但不起作用。我还尝试使用.find()
,如前所述(最后一个答案),但也不起作用。我做错了什么?我加载的HTML页面看起来或多或少像:
<html>
<head>...</head>
<body>
<div class="element">Test</div>
</body>
</html>
。。。或者在这种情况下,简单地说:
$(data).filter('.element');
它可能是:$el=$(数据).filter('.element')代码>?!在所有情况下,您都可以使用:$('',{html:data}).find('.element')
@A.Wolff非常感谢您,.filter()
工作得很好,尽管我的.element
深深嵌套在html结构中。我仍然想知道为什么filter()
有效,而find()
无效?所以它不是后代。再次检查数据
@A.Wolff我刚刚仔细检查了数据
,它看起来或多或少像这样:…Test
。因此,它是html
和body
的后代,但对于jQuery来说body
可能是“根”。无论如何,它终于成功了!jQuery在包装时会去掉HTML和BODY标记。编辑:可能确实与javascript有关
$(data).filter('.element');