Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery AJAX在HTML页面中查找元素_Jquery_Html_Ajax - Fatal编程技术网

jQuery AJAX在HTML页面中查找元素

jQuery 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

我想使用AJAX加载一个HTML页面(在同一台服务器上),在加载的HTML页面中找到一个元素,并将其前置到主体中。我不能使用jQuery
.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');