用jQuery解析完整的HTML页面
我用ajax加载html。我想将结果加载到jquery对象中。我试过了,但返回null。我怎样才能做到这一点?我有一个完整的页面,包括doctype,head元素和body元素。
var test = $(result); //result contains html codealert(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)
无法构建包含head
或body
标签的jQuery对象。它将简单地忽略它们并将所有元素向上移动。
因此,如果您的字符串例如
<html> <head>
<meta ...>
</head>
<body>
<div id="a"/>
</body>
</html>
生成的jQuery对象将是两个元素的数组
[<meta ...>, <div id="a" />]
为了获得一个类似body
jQuery的对象,在将其传递给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