XML DOM previousSibling property
Definition and Usage
previousSibling
This property returns the previous sibling node of the selected element (the previous node at the same tree level).
If such a node does not exist, this property returns null.
Syntax
elementNode.previousSibling
Note:Firefox and most other browsers will treat whitespace or newline as text nodes, while Internet Explorer will not. Therefore, in the following example, we use a function to check the node type of the previous sibling node.
Element nodes' nodeType is 1, so if the previous sibling node is not an element node, move to the previous node and check if the node is an element node. This will continue until the previous sibling node (must be an element node) is found. In this way, the result is correct in all browsers.
Tips:För mer information om skillnader mellan webbläsare, besök avsnittet om DOM-browsare i XML DOM-tutorials.
Exempel
Exempel 1
Följande kod laddar "books.xml" till xmlDoc och hämtar föregående jämställde nod till den första <author>-elementet:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); // Kontrollera om föregående jämställde nod är en elementnod 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>Föregående syskon: " + y.nodeName + " = " + y.childNodes[0].nodeValue; }
Exempel 2
Använd nextSibling för att få nästa jämställde nod till noden:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); // Kontrollera om nästa jämställde nod är en elementnod 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>Följande syskon: " + y.nodeName + " = " + y.childNodes[0].nodeValue; }