XML DOM ιδιότητα nextSibling
Ορισμός και Χρήση
nextSibling
Η ιδιότητα επιστρέφει τον επόμενο同级 στοιχείο του επιλεγμένου στοιχείου (το επόμενο στοιχείο στο ίδιο επίπεδο του δέντρου).
Αν δεν υπάρχει τέτοιο στοιχείο, αυτή η ιδιότητα επιστρέφει null.
Γλώσσα
elementNode.nextSibling
Σημείωση:Το Firefox και οι περισσότεροι άλλοι περιηγητές θα θεωρούν το κενό ή την αλλαγή γραμμής ως κείμενο του στοιχείου, ενώ το Internet Explorer δεν θα το κάνει. Επομένως, στον παρακάτω παράδειγμα, χρησιμοποιούμε μια συνάρτηση για να ελέγξουμε τον τύπο του επόμενου αδελφού του στοιχείου.
Ο τύπος του στοιχείου nodeType είναι 1, οπότε αν ο επόμενος αδελφός του δεν είναι στοιχείο, θα μετακινηθεί στο επόμενο στοιχείο και θα ελέγξει αν αυτό το στοιχείο είναι στοιχείο. Αυτό θα συνεχιστεί μέχρι να βρεθεί ο επόμενος同级 στοιχείο (πρέπει να είναι στοιχείο). Ετσι, το αποτέλεσμα θα είναι σωστό σε όλους τους περιηγητές.
Συμβουλή:Για περισσότερες πληροφορίες σχετικά με τις διαφορές μεταξύ των προγραμματιστών φυλλαδίων, παρακαλώ επισκεφθείτε το κεφάλαιο DOM Browser του εγχειριδίου XML DOM.
Παράδειγμα
Παράδειγμα 1
Η παρακάτω κώδικας θα φορτώσει το "books.xml" στο xmlDoc και θα πάρει τον επόμενο同级 κόμβο από το πρώτο <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(); // Ελέγχω αν ο επόμενος同级 κόμβος είναι κόμβος στοιχείου 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; }
Παράδειγμα 2
Χρησιμοποιώντας το μέθοδο previousSibling, πάρτε τον προηγούμενο同级 κόμβο του στοιχείου:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); // Ελέγχω αν ο προηγούμενος同级 κόμβος είναι κόμβος στοιχείου 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>Προηγούμενος αδελφός: " + y.nodeName + " = " + y.childNodes[0].nodeValue; }