jQuery AJAX在HTML页面中查找元素

时间:2014-03-18 16:55:31

标签: jquery html ajax

我想使用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(最后一个答案),但它也不起作用。我做错了什么?

1 个答案:

答案 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');