Метод replaceChild() XML DOM
Определение и использование
replaceChild()
Метод заменяет дочерний узел новым узлом.
Новый узел может быть существующим узлом в документе или новым узлом.
Совет:Заменяемый дочерний узел можно позже вставить в любое элемент в том же документе. Используйте методы insertBefore() или appendChild() для вставки в том же документе или methods adoptNode() или importNode() для вставки в другой документ.
Синтаксис
nodeObject.replaceChild(newchild,oldchild)
Параметры
Параметры | Описание |
---|---|
newchild | Обязателен. Объект Node. новый узел, который нужно вставить в список дочерних узлов. |
oldchild | Обязателен. Объект Node. узел, который будет заменен в списке дочерних узлов. |
Технические детали
Версия DOM: | Core Level 1 Node Object. Изменен в DOM Level 3. |
---|---|
Возвратное значение: | Объект Node. Узел, который заменяется (oldchild). |
Пример
Ниже приведен код, который загружает "books.xml" в xmlDoc и заменяет первый элемент <book>:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); function myFunction(xml) { var x, y, z, i, newNode, newTitle, newText, xmlDoc, txt; xmlDoc = xml.responseXML; txt = ""; x = xmlDoc.documentElement; // Создать элемент book, элемент title и текстовый узел newNode = xmlDoc.createElement("book"); newTitle = xmlDoc.createElement("title"); newText = xmlDoc.createTextNode("Hello World"); // Добавить текстовый узел в узел title newTitle.appendChild(newText); // Добавить узел title в узел book newNode.appendChild(newTitle); y = xmlDoc.getElementsByTagName("book")[0]; // Заменить первый узел book новым узлом book x.replaceChild(newNode, y); z = xmlDoc.getElementsByTagName("title"); // Вывод всех title for (i = 0; i < z.length; i++) { txt += z[i].childNodes[0].nodeValue + "<br>"; } document.getElementById("demo").innerHTML = txt; }
Поддержка браузеров
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
Поддержка | Поддержка | Поддержка | Поддержка | Поддержка |
Все основные браузеры поддерживают replaceChild()
Методы.