The cloneNode()
method of the Node
interface returns a duplicate of the node on which this method was called. Its parameter controls if the subtree contained in a node is also cloned or not.
Cloning a node copies all of its attributes and their values, including intrinsic (inline) listeners. It does not copy event listeners added using addEventListener()
or those assigned to element properties (e.g., node.onclick = someFunction
). Additionally, for a <canvas>
element, the painted image is not copied.
Warning: cloneNode()
may lead to duplicate element IDs in a document!
If the original node has an id
attribute, and the clone will be placed in the same document, then you should modify the clone's ID to be unique.
Also, name
attributes may need to be modified, depending on whether duplicate names are expected.
To clone a node to insert into a different document, use Document.importNode()
instead.