当前位置: 首页 > 网络学院 > XML相关教程 > XML DOM > replaceChild() 方法
The replaceChild() method replaces a child node with another.
replaceChild()方法的作用是:用另一个节点替换一个子节点。
This method returns the replaced node on success, or NULL on failure.
如果函数执行成功,将返回替换的节点;如果执行失败,将返回null[空值]。
nodeObject.replaceChild(new_node,old_node) |
Parameter 参数 | Description 描述 |
---|---|
new_node | Required. Specifies the new node 必要参数。指定新的节点 |
old_node | Required. Specifies the node to be replaced 必要参数。指定需要替换的子节点 |
Note: Internet Explorer will skip white-space text nodes that are generated between nodes (e.g. new-line characters), while Mozilla will not. So, in the example below, we have a function that checks the node type of the first child node.
注意:IE将跳过在节点之间产生的空格文档节点(如:换行字符),而Mozilla不会这样。在下面的案例中,我们将创建一个用于获取正确第一个子元素节点类型的函数。
Element nodes has a nodeType of 1, so if the first child node is not an element node, it moves to the next node, and checks if this node is an element node. This continues until the first child node (which must be an element node) is found. This way, the result will be correct in both Internet Explorer and Mozilla.
元素节点包含的节点类行为1,因此,如果第一个节点不是元素节点,那么它将自动移动到下一个节点并检测该节点是否是一个元素节点;这样的过程将一直持续下去直到发现的第一个子节点是元素节点为止。通过使用这个方法,在IE浏览器或Mozilla浏览器中显示的结果就会同时正确。
Tip: To read more about the XML DOM differences between IE and Mozilla browsers, visit our Mozilla vs. IE chapter.
提示:如果你想获取更多关于XML DOM在IE和Mozilla浏览器中的不同,那你可以访问“Mozilla vs. IE ”这章。
In all examples, we will use the XML file books.xml, and the JavaScript function loadXMLDoc().
在所有案例中,我们将使用“book.xml”文件以及JavaScript 函数“loadXMLDoc()”。
The following code fragment replaces the <title> element in the first <book> element:
下面的代码片断替换了第一个<book>元素中的第一个<title>元素:
//check if first child node is an element node function get_firstchild(n) { var x=n.firstChild; while (x.nodeType!=1) { x=x.nextSibling; } return x; } xmlDoc=loadXMLDoc("books.xml"); //create a title element and a text node var newNode=xmlDoc.createElement("title"); var newText=xmlDoc.createTextNode("Giada's Family Dinners"); //add the text node to the title node, newNode.appendChild(newText); //replace the first child node with the new node var x=xmlDoc.getElementsByTagName("book")[0]; x.replaceChild(newNode,get_firstchild(x)); //output all titles var y=xmlDoc.getElementsByTagName("title"); for (i=0;i<y.length;i++) { document.write(y[i].childNodes[0].nodeValue); document.write("<br />"); } |
Output:
输出结果:
Giada's Family Dinners Harry Potter XQuery Kick Start Learning XML |
replaceChild() - Replace an element node
replaceChild() - 替换一个元素节点