当前位置: 首页 > 网络学院 > XML相关教程 > XML DOM > insertBefore() 方法
The insertBefore() method inserts a new child node before an existing child node.
insertBefore() 方法的作用是:在现有的子节点前插入一个新的子节点。
This method returns the new child node.
这个方法返回新的子节点。
insertBefore(newchild,refchild) |
Parameter 参数 | Description 描述 |
---|---|
newchild | The new node to insert 必要参数。指定需要插入的新节点 |
refchild | The node before which the new node is to be inserted 必要参数。指定在那个节点之前插入节点 |
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 last child node.
注意:IE将跳过在节点之间产生的空格文档节点(如:换行字符),而Mozilla不会这样。在下面的案例中,我们将书写一个用于检测最后一个子节点的节点类型的函数。
Element nodes has a nodeType of 1, so if the last child node is not an element node, it moves to the previous node, and checks if this node is an element node. This continues until the last 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().
在所有案例中,我们将使用“books.xml”文件以及JavaScript 函数“loadXMLDoc()”。
The following code fragment creates a new <book> node and inserts it before the last <book> element in the document:
下面的代码片断创建了一个全新的<book>节点并将其插入文档中最后的<book>元素之前:
//check if the last childnode is an element node function get_lastchild(n) { var x=n.lastChild; while (x.nodeType!=1) { x=x.previousSibling; } return x; } xmlDoc=loadXMLDoc("books.xml"); var newNode=xmlDoc.createElement("book"); var newTitle=xmlDoc.createElement("title"); var newText=xmlDoc.createTextNode("A Notebook"); newTitle.appendChild(newText); newNode.appendChild(newTitle); xmlDoc.documentElement.insertBefore(newNode,get_lastchild(x)); |
insertBefore() - Insert a node before a specific node
insertBefore() - 在一个指定的节点之前插入一个节点