使用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对象。 它将简单地忽略它们并将所有元素移到内部。

所以如果你的字符串是例如

      

生成的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放入匹配的元素中。