JavaScript. Подробное руководство, 6-е издание, стр. 211
<b> for(var і = 0; і < n.childNodes.length; i++) upcase(n.childNodes[і]);</b><b>}</b>Класс
<b>CharacterData</b><b>Text</b><b>CDATASection</b><b>Element</b>15.6. Создание, вставка и удаление узлов
Мы уже знаем, как получать и изменять содержимое документа, используя строки с разметкой HTML и с простым текстом. Мы также знаем, как выполнять обход документа для исследования отдельных узлов
<b>Element</b><b>Text</b><b>Document</b><b>Element</b><b>Text</b><b>Node</b><b>// Асинхронная загрузка сценария из указанного URL-адреса и его выполнение </b><b>function loadasync(url) {</b><b> var head = document.getElementsByTagName("head")[0]; // Отыскать <head> </b><b> var s = document.createElement("script"); // Создать элемент <script></b><b> s.src = url; // Установить его атрибут src</b><b> head.appendChild(s); // Вставить <script> в <head></b><b>}</b>В следующих подразделах более подробно и с примерами рассказывается о создании новых узлов, о вставке и удалении узлов, а также об использовании объектов DocumentFragment, упрощающих работу с множеством узлов.
15.6.1. Создание узлов
Как было показано в примере выше, создавать новые узлы
<b>Element</b><b>createElement()</b><b>Document</b>Для создания текстовых узлов существует аналогичный метод:
<b>var newnode = document.сreateTextNode("содержимое текстового узла");</b>Кроме того, объект
<b>Document</b><b>createComment().</b><b>createDocumentFragment(),</b><b>createElementNS(),</b><b>Element</b>Еще один способ создания в документе новых узлов заключается в копировании существующих узлов. Каждый узел имеет метод
<b>cloneNode(),</b><b>true</b><b>Document</b><b>importNode().</b>15.6.2. Вставка узлов
После создания нового узла его можно вставить в документ с помощью методов типа
<b>Node</b><b>appendChild()</b><b>insertBefore().</b><b>appendChild()</b><b>Element</b><b>lastChild</b>Метод
<b>insertBefore()</b><b>appendChild(),</b><b>insertBefore()</b><b>appendChild(),</b>Ниже приводится простая функция вставки узла в позицию с указанным числовым индексом. Она демонстрирует применение обоих методов,
<b>appendChild()</b><b>insertBefore():</b><b>// Вставляет узел child в узел parent так, что он становится n-м дочерним узлом </b><b>function insertAt(parent, child, n) {</b><b> if (n < 0 || n > parent.childNodes.length) throw new Error("недопустимый индекс"); </b><b> else </b><b> if (n == parent.childNodes.length) parent.appendChild(child); </b>