用jQuery解析完整的HTML页面

我用ajax加载html。我想将结果加载到jquery对象中。我试过了,但返回null。我怎样才能做到这一点?我有一个完整的页面,包括doctype,head元素和body元素。

var test = $(result); //result contains html code

alert(test.html()); //returns null

我使用此功能加载数据。

function ajaxLoadContent(element) {

$.ajax({

url: "url to the page",

type: "GET",

timeout: 5000,

datattype: "html",

success: function(result) {

//handler

},

});

return false;

回答:

前一阵子,但也许您仍然对此感兴趣。

的内部实现$(String)无法构建包含headbody标签的jQuery对象。它将简单地忽略它们并将所有元素向上移动。

因此,如果您的字符串例如

<html>

<head>

<meta ...>

</head>

<body>

<div id="a"/>

</body>

</html>

生成的jQuery对象将是两个元素的数组

[<meta ...>, <div id="a" />]

为了获得一个类似bodyjQuery的对象,在将其传递给jQuery之前,请剪切除主体内容以外的所有内容:

body = '<div id="body-mock">' + html.replace(/^[\s\S]*<body.*?>|<\/body>[\s\S]*$/ig, '') + '</div>';

var $body = $(body);

现在事情按预期工作了。例如

$body.find('#a')

希望有帮助。

以上是 用jQuery解析完整的HTML页面 的全部内容, 来源链接: utcz.com/qa/412376.html

回到顶部