Node.cloneNode()메서드는 이 메서드를 호출한 Node 의 복제된 Node를 반환합니다.
var dupNode = node.cloneNode(deep);
복제되어야 할 node.
복제된 새로운 node.
- deep Optional
해당 node의 children 까지 복제하려면 true, 해당 node 만 복제하려면 false
참고: Note: In the DOM4 specification (as implemented in Gecko 13.0 (Firefox 13 / Thunderbird 13 / SeaMonkey 2.10)),
deep is an optional argument. If omitted, the method acts as if the value of
true, defaulting to using deep cloning as the default behavior. To create a shallow clone,
deep must be set to
false.This behavior has been changed in the latest spec, and if omitted, the method will act as if the value of
false. Though It's still optional, you should always provide the
deep argument both for backward and forward compatibility. With Gecko 28.0 (Firefox 28 / Thunderbird 28 / SeaMonkey 2.25 / Firefox OS 1.3)), the console warned developers not to omit the argument. Starting with Gecko 29.0 (Firefox 29 / Thunderbird 29 / SeaMonkey 2.26)), a shallow clone is defaulted instead of a deep clone.
var p = document.getElementById("para1"); var p_prime = p.cloneNode(true);
Cloning a node copies all of its attributes and their values, including intrinsic (in–line) listeners. It does not copy event listeners added using addEventListener() (en-US) or those assigned to element properties. (e.g.
node.onclick = fn) Moreover, for a <canvas> element, the painted image is not copied.
The duplicate node returned by
cloneNode() is not part of the document until it is added to another node that is part of the document using
Node.appendChild() or a similar method. It also has no parent until it is appended to another node.
deep is set to
false, child nodes are not cloned. Any text that the node contains is not cloned either, as it is contained in one or more child
deep evaluates to
true, the whole subtree (including text that may be in child
Text nodes) is copied too. For empty nodes (e.g.
<input> elements) it doesn't matter whether
deep is set to
cloneNode() may lead to duplicate element IDs in a document.
If the original node has an ID and the clone is to be placed in the same document, the ID of the clone should be modified to be unique. Name attributes may need to be modified also, depending on whether duplicate names are expected.
To clone a node for appending to a different document, use
|DOM Standard |
BCD tables only load in the browser