XML DOM ιδιότητα lastChild

Ορισμός και Χρήση

lastChild Η ιδιότητα επιστρέφει τον τελευταίο υποκόμβο του καθορισμένου κόμβου.

Γλώσσα

nodeObject.lastChild
Συμβουλές και Σημειώσεις

Σημείωση:Firefox και οι περισσότεροι άλλοι περιηγητές θεωρούν το κενό ή τη νέα γραμμή ως κόμβο κειμένου, ενώ ο Internet Explorer δεν το κάνει. Επομένως, στον παρακάτω παράδειγμα, χρησιμοποιούμε μια συνάρτηση για να ελέγξουμε τον τύπο του τελευταίου υποκόμβου.

Το nodeType των στοιχείων είναι 1, οπότε αν το τελευταίο υποεлемент δεν είναι στοιχείο, θα μετακινηθεί στην προηγούμενη κόμβο και θα ελέγξει αν αυτή είναι στοιχείο. Αυτό θα συνεχιστεί μέχρι να βρεθεί ο τελευταίος κόμβος (πρέπει να είναι στοιχείο). Με αυτόν τον τρόπο, το αποτέλεσμα θα είναι σωστό σε όλους τους περιηγητές.

Σημείωση:Για περισσότερες πληροφορίες σχετικά με τις διαφορές μεταξύ των περιηγητών, επισκεφθείτε το κεφάλαιο DOM Περιηγητών του κειμένου XML DOM Τεκμηρίωσης.

Παράδειγμα

Παράδειγμα 1

Η παρακάτω κώδικας φορτώνει το "books.xml" στο xmlDoc και εμφανίζει το όνομα του τελευταίου υποεлементου του έγγραφου:

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_lastchild(n) {
    var x = n.lastChild;
    while (x.nodeType != 1) {
        x = x.previousSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = get_lastchild(xmlDoc);
    document.getElementById("demo").innerHTML =
    "Nodename: " + x.nodeName +"
    " (nodetype: " + x.nodeType + ")<br>"
}

亲自试一试

Παράδειγμα 2

Εξάγει τον πρώτο υποεлемент του έγγραφου:

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_firstchild(n) {
    var x = n.firstChild;
    while (x.nodeType != 1) {
        x = x.nextSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    // Εξάγει τον πρώτο υποεлемент του έγγραφου
    var x = get_firstchild(xmlDoc);
    // Εξάγει τον πρώτο υποεлемент του ρίζα στοιχείου
    var y = get_firstchild(xmlDoc.documentElement);
    document.getElementById("demo").innerHTML =
    "Nodename: " + x.nodeName +" 
    " (nodetype: " + x.nodeType + ")<br>" +
    "Nodename: " + y.nodeName + 
    " (nodetype: " + y.nodeType + ")<br>";
}

亲自试一试