Создание узлов путем клонирования (копирования) узла – метод cloneNode

Рубрика: DOM - Объектная Модель Документа

Здравствуйте, уважаемые читатели блога okITgo.ru! В одной из предыдущих статей рубрики DOM, посвященной созданию новых узлов, я не упомянул о еще одном способе, позволяющем создавать узлы – клонирование. Правда это не совсем то же самое, что создание полностью нового узла, поэтому решил написать об этой возможности отдельный небольшой пост.


Попробуйте Сами – Примеры

Примеры ниже используют XML файл books.xml.
Функция loadXMLDoc(), описанная во внешнем файле JavaScript, используется для загрузки XML файла.

Копировать узел и прицепить его к существующему узлу
Этот пример использует cloneNode(), чтобы копировать и прицепить его к корневому узлу XML документа


Копирование Узла

Метод cloneNode() создает копию указанного узла.

Метод cloneNode() имеет параметр (true – истина или false – ложь). Этот параметр определяет, должен ли клонируемый узел включать все атрибуты и дочерние узлы исходного узла.

Следующий фрагмент кода копирует первый узел <book> и прицепляет его к корневому узлу документа:

Пример

xmlDoc=loadXMLDoc("books.xml");

oldNode=xmlDoc.getElementsByTagName(‘book’)[0];
newNode=oldNode.cloneNode(true);
xmlDoc.documentElement.appendChild(newNode);

//Вывести все заголовки
y=xmlDoc.getElementsByTagName("title");
for (i=0;i<y.length;i++)
{
document.write(y[i].childNodes[0].nodeValue);
document.write("");
}

Вывод:

Самогон и другие спиртные напитки домашнего приготовления
Арлекино и Пьеро
Ajax в действии
Библия JavaScript 4-е Издание
Самогон и другие спиртные напитки домашнего приготовления

Попробуйте сами »

Объяснение примера:

  1. Загружаем "books.xml" в xmlDoc, используя loadXMLDoc()
  2. Получаем узел, который необходимо скопировать
  3. Копируем (создаем) узел в "newNode" с помощью метода cloneNode
  4. Прицепляем новый узел к корневому узлу XML документа
  5. Выводим все заголовки всех книг в документе

Спасибо за внимание! До новых встреч на страницах сайта okITgo.ru.