正确的方式解析html为jQuery对象
The right way parse html to jQuery object
我想解析一个html字符串到jQuery对象,然后找到一个元素的ID。
我试了下面三种方法,但只有最后一种有效。我不知道为什么其他的不起作用?
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
,这就是你所做的。
另一种方法-
var myTestDiv = document.createElement('div');
var mystr = '<div id="main"></div>';
myTestDiv.innerHTML = mystr;
console.log(myTestDiv.querySelector('div#main'));
相关文章:
- 将jQuery对象传递到setTimeout递归函数中
- jQuery:对象不是函数
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 如何从jQuery对象文本正确调用服务器端ASP.NET并将数据返回给jQuery
- 检查对象是否基于jquery对象
- 如何在几个jQuery对象上调用jQuery函数
- 将Javascript函数链接到返回jQuery对象的jQuery函数
- 如何正确地将jquery插件添加到webpack中的jquery对象中
- 用jquery post发送jquery对象
- 如何创建jQuery插件来缓存jQuery对象,如下所示
- 从主体分离时,jQuery对象scrollTop(值)
- 创建jQuery对象时出现问题
- 获取随机jQuery对象的属性
- 在 javascript