Описание тега clonenode

Метод Node.cloneNode() возвращает дубликат узла, на котором был вызван этот метод.

Из сети разработчиков Mozilla:

В Node.cloneNode() метод возвращает дубликат узла, на котором был вызван этот метод.

При клонировании узла копируются все его атрибуты и их значения, включая внутренних (встроенных) слушателей. Он не копирует прослушиватели событий, добавленные с помощью addEventListener() или присвоенные свойствам элемента. (напримерnode.onclick = fn) Более того, для элемента нарисованное изображение не копируется.

Повторяющийся узел, возвращенный cloneNode() не является частью документа, пока он не будет добавлен к другому узлу, который является частью документа, с использованием Node.appendChild() или аналогичный метод. У него также нет родителя, пока он не будет добавлен к другому узлу.

Если deep установлен на false, дочерние узлы не клонируются. Любой текст, который содержит узел, также не клонируется, поскольку он содержится в одном или нескольких дочерних элементах. Text узлы.

Если deep оценивает true, все поддерево (включая текст, который может быть в дочернем Text узлов) тоже копируется. Для пустых узлов (например, <img> а также <input> элементов) неважно, deep установлен на true или false.