将标记转换为jQuery对象会导致数组而不是DOM

时间:2014-08-19 16:24:16

标签: jquery html html5

我正在尝试通过AJAX获取页面,过滤结果并将其添加到现有DOM元素之后:

$.get(url, null, function(response)
{
    $response = $(response);
    $response.find('#content > article').after('#content > header')
})

response是包含doctype <html><head><body>

的完整HTML文档

我希望我能在$response上使用所有正常的jQuery函数,但看起来它只是一个jQuery包装的数组 - 或者在我的情况下同样无用的东西。

我设置了jsfiddle.net我正在尝试做的事情(没有AJAX)。

如何将完整HTML页面的字符串表示形式转换为可用的jQuery对象?

2 个答案:

答案 0 :(得分:1)

jQuery.find()命令仅搜索后代元素。将命令更改为:

$("<div/>").append(markup).find('#insertme').insertAfter('#first')

在这里小提琴:http://jsfiddle.net/gvytutvL/3/

答案 1 :(得分:0)

只是想一想,您可以尝试将内容类型设置为XML,我发现可以在添加之前将其解析为HTML片段:

function success(xml_fragment) {

    $response = $(xml_fragment);
    $response.find('#content > article').after('#content > header')
}

$.get(url, null, success, 'xml');