Метод узла: cloneNode()
Базовая Широко доступная
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузера. Она доступна в браузерах с июля 2015 года.
Метод cloneNode() интерфейса Node возвращает дубликат узла, на котором был вызван этот метод. Его параметр контролирует, будет ли клонирована поддерево, содержащееся в узле.
Клонирование узла копирует все его атрибуты и их значения, включая встроенные (встроеные) обработчики событий. Оно не копирует обработчики событий, добавленные с помощью addEventListener(), или те, которые назначены свойствам элемента (например, node.onclick = someFunction). Кроме того, для элемента <canvas> нарисованное изображение не копируется.
Предупреждение: cloneNode() может привести к дублированию идентификаторов элементов в документе!
Если у исходного узла есть атрибут id, и клон будет помещен в тот же документ, то вы должны изменить идентификатор клона, чтобы он был уникальным.
Кроме того, может потребоваться изменить атрибуты name, в зависимости от того, ожидаются ли дублируемые имена.
Для клонирования узла для вставки в другой документ используйте Document.importNode() вместо этого.
Синтаксис
cloneNode() cloneNode(deep)
Параметры
deepНеобязательно-
Если
true, то узел и всё его поддерево, включая текст, который может быть в дочерних узлахText, также копируется.Если
false, будет клонирован только узел. Поддерево, включая любой текст, который содержит узел, не клонируется.Обратите внимание, что
deepне влияет на пустые элементы, такие как элементы<img>и<input>.
Возвращаемое значение
Новый Node клон. Клонированный узел не имеет родителя и не является частью документа, пока он не будет добавлен к другому узлу, который является частью документа, с помощью Node.appendChild() или аналогичного метода.
Пример
let p = document.getElementById("para1");
let p_prime = p.cloneNode(true);
Спецификации
| Спецификация |
|---|
| DOM # ref-for-dom-node-clonenode① |
Совместимость с браузерами
| Рабочие столы | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
cloneNode |
1 | 12 | 1 | 7 | 1.1 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Node/cloneNode