【发布时间】:2016-11-15 02:40:00
【问题描述】:
我只是试图将 JavaScript 字符串解析并附加为 DOM 元素。我找到了两种快速的方法来做到这一点,其中一种是使用DOMParser,如this popular SO answer 所示。两种方法都有效,但是,DOMParser 方法由于某种原因不尊重我定义的内联样式 - 即使两种方法都注入了 exact same 动态标记。考虑以下...
<div></div>
var parent = document.getElementsByTagName('div')[0]
// ---- case 1 ---------------
var parser = new DOMParser();
var node = parser.parseFromString('<p style="color: red">foo</p>', 'text/xml').firstChild;
parent.appendChild(node);
// ---- case 2 ---------------
var wrapper= document.createElement('div');
wrapper.innerHTML= '<p style="color: red">foo</p>';
var node2 = wrapper.firstChild;
parent.appendChild(node2);
每个方法都会相应地注入节点,并且 DOM 会反映以下内容...
<div>
<p style="color: red">foo</p>
<p style="color: red">foo</p>
</div>
但是,只有最后一个是红色的!知道这里可能发生了什么吗?
JSFiddle - 复制演示
【问题讨论】:
标签: javascript html dom domparser