Описание тега clonenode
Из сети разработчиков Mozilla:
В
Node.cloneNode()
метод возвращает дубликат узла, на котором был вызван этот метод.При клонировании узла копируются все его атрибуты и их значения, включая внутренних (встроенных) слушателей. Он не копирует прослушиватели событий, добавленные с помощью
addEventListener()
или присвоенные свойствам элемента. (напримерnode.onclick = fn
) Более того, для элемента нарисованное изображение не копируется.Повторяющийся узел, возвращенный
cloneNode()
не является частью документа, пока он не будет добавлен к другому узлу, который является частью документа, с использованиемNode.appendChild()
или аналогичный метод. У него также нет родителя, пока он не будет добавлен к другому узлу.Если
deep
установлен наfalse
, дочерние узлы не клонируются. Любой текст, который содержит узел, также не клонируется, поскольку он содержится в одном или нескольких дочерних элементах.Text
узлы.Если
deep
оцениваетtrue
, все поддерево (включая текст, который может быть в дочернемText
узлов) тоже копируется. Для пустых узлов (например,<img>
а также<input>
элементов) неважно,deep
установлен наtrue
илиfalse
.