Spec-Zone.ru › Web APIs

Метод узла: 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API