XML DOM replaceChild() 方法
定義和用法
replaceChild()
方法用新節點替換子節點。
新節點可以是文檔中的現有節點,也可以創建新節點。
提示:被替換的子節點可以稍后插入到同一文檔中的任何元素中。請使用 insertBefore() 或 appendChild() 方法稍后將其插入到同一文檔中,或者使用 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()
方法。