jQuery' parseHTML()
是否意味着我可以接受任何HTML代码串并将其视为在DOM中?我可以通过使用选择器查找元素,替换元素,在插件上调用(" destroy"),获取元素索引以及可以使用DOM中的元素完成的所有其他内容来操纵HTML字符串,但是应用于变量所持有的HTML字符串的更改?
答案 0 :(得分:1)
parseHTML()
会将顶级节点作为DOM元素返回,然后您可以将其作为DOM元素进行操作。如果将字符串传递给未被一个标记封装的parseHTML()
,它会将字符串拆分为单独的DOM元素。
样本1:
var html = $.parseHTML("<div id='#first'><div id='#second'><span>testing</span></div></div>");
$.each( html, function( i, el ) {
console.log(el.nodeName ? "true" : "false");
});
/* Outputs:
true
*/
样本2:
var html2 = $.parseHTML("Sample string with <strong>bold</strong> and a <div>div</div>.");
$.each( html2, function( i, el ) {
console.log(el.nodeName ? "true" : "false");
});
/* Outputs:
true
true
true
true
true
*/
在第一个示例中,创建了一个包含嵌套元素集的DOM元素。在第二个中,字符串被拆分为五个单独的DOM元素:三个文本元素,一个<strong></strong>
和一个<div></div>
。
注意:如果元素是DOM元素,(el.nodeName ? "true" : "false")
将返回true。
另外,要回答上一个问题,应用于这些结果DOM元素的更改将不会反映在包含原始元素的变量中(在这种情况下,var html
或{{1 }})