XML DOM firstChild eigenschap

Definitie en Gebruik

firstChild De eigenschap retourneert de eerste onderliggende knoop van de gespecificeerde knoop.

Syntax

nodeObject.firstChild
Tips en Aantekeningen

Opmerking:Firefox en de meeste andere browsers beschouwen witruimte of een nieuwe regel als een tekstknoop, terwijl Internet Explorer dat niet doet. Daarom gebruiken we in het volgende voorbeeld een functie om het type van de eerste onderliggende knoop te controleren.

De nodeType van elementknopen is 1, dus als de eerste onderliggende knoop geen elementknoop is, wordt naar de volgende knoop verplaatst en wordt gecontroleerd of deze een elementknoop is. Dit gaat door tot de eerste onderliggende knoop (moet een elementknoop zijn) is gevonden. Op deze manier is het resultaat correct in alle browsers.

Tip:Voor meer informatie over verschillen tussen browsers, bezoek de DOM-browsers sectie van de XML DOM tutorial.

Voorbeeld

Voorbeeld 1

De volgende code laadt "books.xml" in xmlDoc en toont de naam van de eerste onderliggende knoop:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Controleer of de eerste knoop een elementknoop is
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);
    document.getElementById("demo").innerHTML =
    "Nodenaam: " + x.nodeName +
    " (nodetype: " + x.nodeType + ")<br>";
}

Probeer het zelf

Voorbeeld 2

Verkrijg de laatste onderliggende knoop van het document:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Controleer of de laatste knoop een elementknoop is
function get_lastchild(n) {
    var x = n.lastChild;
    while (x.nodeType != 1) {
        x = x.previousSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    // Verkrijg de laatste onderliggende knoop van het document
    var x = get_lastchild(xmlDoc);
    // Verkrijg de laatste onderliggende knoop van de root-element
    var y = get_lastchild(xmlDoc.documentElement);
    document.getElementById("demo").innerHTML =
    "Nodenaam: " + x.nodeName + 
    " (nodetype: " + x.nodeType + ")<br>" +
    "Nodenaam: " + y.nodeName + 
    " (nodetype: " + y.nodeType + ")<br>";
}

Probeer het zelf