我在一些代码示例中注意到克隆DOM节点并将其附加到现有元素的看似不同的方法:
element.appendChild(something.cloneNode(true));
element.appendChild(document.importNode(something, true));
两者都具有复制节点的效果。第二个版本似乎更冗长,并暗示副本实际上是某个具体的第一个,虽然它仍然需要找到一个合适的家。但是,MDN和其他一些使用它作为使用template
标记的说明。在其他地方,他们选择更简单的clodeNode
选项。
问题是:使用importNode
而不是cloneNode
有什么好处?
答案 0 :(得分:3)
在DOM3及更早版本中,importNode用于从其他文档复制节点,cloneNode用于在同一文档中复制。但是浏览器并没有强制执行,因此在最新的DOM standard中,cloneNode可用于从其他文档进行复制。在其他环境中使用DOM时,请坚持使用DOM3规则。