XML DOM nextSibling Property
Element Object
Example
The following code fragment loads "books.xml" into xmlDoc and gets the next sibling node from the first <title> element:
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
myFunction(xhttp);
}
};
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;
}
The output of the code above will be:
Next sibling: author = Giada De Laurentiis
Definition and Usage
The nextSibling property returns the next sibling node (the following node in the same tree level) of the selected element
If there is no such node, this property returns null.
Syntax
Tips and Notes
Note: Firefox, and most other browsers, will treat empty white-spaces or new lines as text nodes, Internet Explorer will not. So, in the example below, we have a function that checks the node type of the next sibling node.
Element nodes has a nodeType of 1, so if the next sibling 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 next sibling node (which must be an element node) is found. This way, the result will be correct in all browsers.
Tip: To read more about the differences between browsers, visit our DOM Browsers chapter in our XML DOM Tutorial.
Try-It-Yourself Demos
previousSibling - Get the previous sibling of a node
Element Object