Node.cloneNode()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Метод Node.cloneNode()
возвращает дубликат узла, из которого этот метод был вызван.
Синтаксис
var dupNode = node.cloneNode(deep);
- node
-
Узел, который будет клонирован.
- dupNode
-
Новый узел, который будет клоном
node
- deep Необязательный
-
true,
если дети узла должны быть клонированы илиfalse
для того, чтобы был клонирован только указанный узел.
Пример
var p = document.getElementById("para1");
var p_prime = p.cloneNode(true);
Примечание
Клонирование узлов копирует все атрибуты и их значения, в том числе собственных (в линию) перехватчиков. Это не копирует перехватчики событий, добавленных используя addEventListener()
или тех что назначены через свойства элемента (т.е node.onclick = fn
).
Дубликат узла, возвращённого cloneNode()
не является частью документа, пока не будет добавлен в другой узел, который является частью документа, используя Node.appendChild()
или другой метод. Кроме того, не имеет родителя, пока не будет добавлен к другому узлу.
Если deep
установлен как false
, дочерние узлы не клонируются. Любой текст, который содержит узел также не клонируется, как и содержащийся в одном или более дочернем узле Text
.
Если deep
установлено как true
, все поддеревья (включая текст, который может быть потомком узла Text
) копируется тоже. Для пустых узлов (т.е <img>
и <input>
элементов) это не имеет значения установлен ли deep
как true
или false
.
Предупреждение: Внимание: cloneNode()
может привести к дублированию идентификаторов элементов в документе.
Если исходный узел имеет идентификатор и клон размещён в том же документе, идентификатор должен быть изменён, для того что бы быть уникальным. Имя атрибута также может нуждаться в изменении, в зависимости от будущего имени дубликата.
Чтобы клонировать узел для добавления к другому документу используйте Document.importNode()
вместо этого.
Спецификации
Specification |
---|
DOM Standard # ref-for-dom-node-clonenode① |
Совместимость с браузерами
BCD tables only load in the browser