繁体   English   中英

正确的方法将html解析为jQuery对象

[英]The right way parse html to jQuery object

我想将一个html字符串解析为jQuery对象,然后按ID查找一个元素。

我尝试了3种方法,但只有最后一种方法。 我不知道为什么其他人不行?

var html = "<html><body><div id='main'></div></body></html>";

// Not work, return 0
console.log($(html).find('#main').length); 
// Not work, return 0
console.log($($.parseHTML(html)).find('#main').length); 
// Works, return 1
console.log($("<html/>").html(html).find('#main').length); 

以下是示例: http//jsfiddle.net/nbyofkam/2/

记录在案

传递复杂的HTML时,某些浏览器可能无法生成完全复制所提供的HTML源的DOM。 如上所述,jQuery使用浏览器的.innerHTML属性来解析传递的HTML并将其插入到当前文档中。在此过程中,某些浏览器会过滤掉某些元素,例如<html><title><head>元素结果,插入的元素可能无法代表传递的原始字符串。

结果, $(html)减少为"<div id="main"></div>" 您可以通过记录$(html)[0].outerHTML

所以你不能find没有包装的情况下使用find ,这就是你所做的。

另一种方法 -

var myTestDiv = document.createElement('div');
var mystr = '<div id="main"></div>';
myTestDiv.innerHTML = mystr;

console.log(myTestDiv.querySelector('div#main'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM