XML DOM nextSibling property
Definition and Usage
nextSibling
This property returns the next sibling node of the selected element (the next node at the same tree level).
If no such node exists, this property returns null.
Syntax
elementNode.nextSibling
Note:Firefox and most other browsers treat whitespace or newlines as text nodes, while Internet Explorer does not. Therefore, in the following example, we use a function to check the node type of the next sibling node.
Element nodes' nodeType is 1, so if the next sibling node is not an element node, it moves to the next node and checks whether the node is an element node. This will continue until the next sibling node (which must be an element node) is found. As a result, the output is correct in all browsers.
Tip:For mere information om forskelle mellem browserne, besøg DOM-browservisjonen i XML DOM-tutorials.
Eksempel
Eksempel 1
Følgende kode indlæser "books.xml" til xmlDoc og henter den næste sidestande node fra det første <title>-element:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); // Check if the next sibling node is an element node function get_nextsibling(n) { var x = n.nextSibling; while (x.nodeType != 1) { x = x.nextSibling; } return x; } function myFunction(xml) { var xmlDoc = xml.responseXML; var x = xmlDoc.getElementsByTagName("title")[0]; var y = get_nextsibling(x); document.getElementById("demo").innerHTML = x.nodeName + " = " + x.childNodes[0].nodeValue + "<br>Next sibling: " + y.nodeName + " = " + y.childNodes[0].nodeValue; }
Eksempel 2
Brug metoden previousSibling til at få den forrige sidestande node:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); // Check if the previous sibling node is an element node function get_previoussibling(n) { var x = n.previousSibling; while (x.nodeType != 1) { x = x.previousSibling; } return x; } function myFunction(xml) { var xmlDoc = xml.responseXML; var x = xmlDoc.getElementsByTagName("author")[0]; var y = get_previoussibling(x); document.getElementById("demo").innerHTML = x.nodeName + " = " + x.childNodes[0].nodeValue + "<br>Previous sibling: " + y.nodeName + " = " + y.childNodes[0].nodeValue; }