Метод XML DOM appendChild()
Определение и использование
Метод 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 Разделы.