2

我在一些代码示例中注意到克隆 DOM 节点并将其附加到现有元素的看似不同的方法:

element.appendChild(something.cloneNode(true));
element.appendChild(document.importNode(something, true));

两者都有复制节点的效果。第二个版本似乎更冗长,并暗示该副本实际上首先是具体的某个地方,尽管它仍然需要找到一个合适的归宿。然而,它被 MDN 和其他一些人用作使用template标签的说明。在其他地方,他们选择更简单的clodeNode选择。

问题是:使用importNodeover 有什么好处cloneNode

4

1 回答 1

5

在 DOM3 和更早的版本中,importNode 用于从其他文档复制节点,cloneNode 用于在同一文档中复制。但是浏览器并没有强制执行,所以在最新的DOM 标准中, cloneNode 可以用来从不同的文档中复制。在其他上下文中使用 DOM 时,请遵守 DOM3 规则。

于 2017-04-02T11:50:47.977 回答