Método replaceChild() del XML DOM

Definición y uso

replaceChild() El método reemplaza el nodo hijo con un nuevo nodo.

El nuevo nodo puede ser un nodo existente en el documento o un nodo nuevo creado.

Consejo:El nodo hijo reemplazado se puede insertar más tarde en cualquier elemento del mismo documento. Utilice los métodos insertBefore() o appendChild() para insertarlo más tarde en el mismo documento, o utilice los métodos adoptNode() o importNode() para insertar el nodo reemplazado en otro documento.

Sintaxis

nodeObject.replaceChild(newchild,oldchild)

Parámetros

Parámetros Descripción
newchild Necesario. Objeto Node. Nodo nuevo que se colocará en la lista de nodos hijos.
oldchild Necesario. Objeto Node. Nodo que se reemplazará en la lista de nodos hijos.

Detalles técnicos

Versión DOM: Nodo de objeto de nivel de núcleo 1. Modificado en el nivel DOM 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;
}

Prueba personalmente

Compatibilidad del navegador

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Soporte Soporte Soporte Soporte Soporte

Todos los navegadores principales lo soportan replaceChild() Métodos.