XML DOM replaceChild() 方法
❮ 节点对象
示例
以下代码片段将 "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("A Notebook");
// 将文本节点添加到 title 节点
newTitle.appendChild(newText);
// 将 title 节点添加到 book 节点
newNode.appendChild(newTitle);
y = xmlDoc.getElementsByTagName("book")[0];
// 用新的 book 节点替换第一个 book 节点
x.replaceChild(newNode, y);
z = xmlDoc.getElementsByTagName("title");
// 输出所有标题
for (i = 0; i < z.length; i++) {
txt += z[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("demo").innerHTML = txt;
}
上面代码的输出将是
A Notebook
Harry Potter
XQuery Kick Start
Learning XML
尝试一下 »
定义和用法
replaceChild() 方法用一个新节点替换子节点。
新节点可以是文档中已有的节点,也可以是新创建的节点。
提示: 替换的子节点可以稍后插入到同一文档中的任何元素中。使用 insertBefore() 或 appendChild() 方法稍后将其插入到同一文档中,或使用 adoptNode() 或 importNode() 方法将替换的节点插入到另一个文档中。
浏览器支持
replaceChild() 方法在所有主流浏览器中都受支持。
语法
nodeObject.replaceChild(newchild,oldchild)
参数
参数 | 类型 | 描述 |
---|---|---|
newchild | 节点对象 | 必需。要放入子列表中的新节点 |
oldchild | 节点对象 | 必需。将在子列表中替换的节点 |
返回值
类型 | 描述 |
---|---|
节点对象 | 替换的节点 (oldchild) |
技术细节
DOM 版本 | 核心级别 1 节点对象。在 DOM 级别 3 中进行了修改 |
---|
❮ 节点对象