XML DOM replaceChild() method

Definition and usage

replaceChild() The method replaces the child node with a new node.

The new node can be an existing node in the document or a newly created node.

Tip:The replaced child node can be inserted later into any element in the same document. Please use insertBefore() or appendChild() methods to insert it later into the same document, or use adoptNode() or importNode() methods to insert the replaced node into another document.

Syntax

nodeObject.replaceChild(newchild,oldchild)

Parameters

Parameters Description
newchild Required. Node object. The new node to be placed in the child node list.
oldchild Required. Node object. The node to be replaced in the child node list.

Technical details

DOM version: Core Level 1 Node Object. In DOM Level 3 modified.
返回值: 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() 方法。