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; }
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.