使用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)
的实习生实现无法构建包含head
或body
标记的jQuery对象。 它将简单地忽略它们并将所有元素移到内部。
所以如果你的字符串是例如
生成的jQuery对象将是一个包含两个元素的数组
[, ]
在将它传递给jQuery之前,获取一个类似于body
的jQuery对象除了正文内容之外的所有内容:
body = '' + html.replace(/^[\s\S]*|<\/body>[\s\S]*$/ig, '') + ' '; var $body = $(body);
现在事情按预期工作了……例如
$body.find('#a')
希望有所帮助..
test只是一个html字符串,所以你可以简单地这样做来显示内容
alert(result);
如果你想将它绑定到一个元素
$("#myDiv").html(result);
function ajaxLoadContent(element) { $.ajax({ url: "url to the page", type: "GET", timeout: 5000, datattype: "html", success: function(data) { var result = $(data); }, }); return false;
您现在应该可以像这样调用结果(记住它还没有添加到DOM中):
alert(result.html());
添加到DOM
result.appendTo("body");
如果这对您有用,请告诉我。
尝试jQuery对象的load
方法: http : //api.jquery.com/load/
从服务器加载数据并将返回的HTML放入匹配的元素中。