节点:cloneNode() 方法
cloneNode()
是 Node
接口的方法,它返回调用此方法的节点的副本。它的参数控制是否也克隆节点中包含的子树。
克隆节点会复制其所有属性及其值,包括内联(内联)侦听器。它不会复制使用 addEventListener()
添加的事件侦听器,也不会复制分配给元素属性的事件侦听器(例如,node.onclick = someFunction
)。此外,对于 <canvas>
元素,不会复制绘制的图像。
警告:cloneNode()
可能会导致文档中出现重复的元素 ID!
如果原始节点具有 id
属性,并且克隆将被放置在同一文档中,那么您应该将克隆的 ID 修改为唯一的。
此外,可能需要修改 name
属性,具体取决于是否期望重复名称。
要克隆一个节点并将其插入到另一个文档中,请使用 Document.importNode()
而不是。
语法
js
cloneNode()
cloneNode(deep)
参数
返回值
克隆的新 Node
。克隆的节点没有父节点,也不属于文档,直到它使用 Node.appendChild()
或类似方法添加到属于文档的另一个节点为止。
示例
js
let p = document.getElementById("para1");
let p_prime = p.cloneNode(true);
规范
规范 |
---|
DOM 标准 # ref-for-dom-node-clonenode① |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。