Метод XML DOM appendChild()

Руководство по объекту Node

Определение и использование

Метод appendChild() может добавить новый подузел в конец списка подузлов узла.

Этот метод может вернуть этот новый подузел.

Грамматика:

appendChild(newchild)
Параметр Описание
newchild Добавленный узел

Возвратное значение

Вставленный узел

Описание

Этот метод добавляет узел newchild в документ, делая его последним подузлом текущего узла.

Если newchild уже существует в дереве документа, он будет удален из дерева документа и заново вставлен в новое положение. Если newchild является узлом DocumentFragment, его не вставляют напрямую, а вместо этого вставляют его подузлы в конец массива childNodes[].

Внимание, узел из одного документа (или созданный одним документом) не может быть вставлен в другой документ. То есть, атрибут ownerDocument newchild должен быть тем же, что и у текущего узла ownerDocument.

Пример

Ниже приведена функция, которая вставляет новый абзац в конец документа:

function appendMessage (message) {
  var pElement = document.createElement("p");
  var messageNode = document.createTextNode(message);
  pElement.appendChild(messageNode);
  document.body.appendChild(pElement);
}

Пример

Во всех примерах мы будем использовать XML-файл books.xmlи JavaScript-функция loadXMLDoc()

Ниже приведен фрагмент кода, который создает и добавляет узел к первому элементу <book>, а затем выводит все подузлы первого элемента <book>:

xmlDoc=loadXMLDoc("books.xml");
var newel=xmlDoc.createElement('edition');
var newtext=xmlDoc.createTextNode('First');
newel.appendChild(newtext);
var x=xmlDoc.getElementsByTagName('book')[0];
x.appendChild(newel);;
var y=x.childNodes;
for (var i=0;i<y.length;i++)
  { 
  //Отображать только узлы элементов
  if (y[i].nodeType==1)
    { 
    document.write(y[i].nodeName);
    document.write("<br />");
    } 
  }

Вывод:

title
author
year
price
edition

Комментарий:Internet Explorer будет игнорировать пустые текстовые узлы между узлами (например, символы перевода строки), а Mozilla этого не делает. Поэтому в следующем примере мы обрабатываем только узлы элементов (узлы элементов имеют nodeType=1).

Совет:Для получения дополнительной информации о различиях между XML DOM в IE и Mozilla браузерах, пожалуйста, посетите наш Браузер DOM Разделы.

Руководство по объекту Node