XML DOM nextSibling property
Definition and Usage
nextSibling
The property returns the node following a node (the next node at the same tree level).
If such a node does not exist, this property returns null.
Syntax
nodeObject.nextSibling
Note:Firefox and most other browsers treat whitespace or line breaks 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 node's nodeType is 1, so if the next sibling node is not an element node, it moves to the next node and checks if the node is an element node. This continues until the next sibling node (which must be an element node) is found. As a result, the output is correct in all browsers.
Wskazówka:Aby uzyskać więcej informacji na temat różnic między przeglądarkami, odwiedź rozdział DOM przeglądarki w podręczniku XML DOM.
Przykład
Przykład 1
Poniższy kod załaduje "books.xml" do xmlDoc i pobra następny brat węzła z pierwszego elementu <title>:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); // Sprawdź, czy następny brat jest węzłem elementu 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; }
Przykład 2
Pobierz poprzedniego brata węzła:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); // Sprawdź, czy poprzedni brat jest węzłem elementu 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 + "Poprzedni brat: " + y.nodeName + " = " + y.childNodes[0].nodeValue; }