XML DOM firstChild-Eigenschaft

Definition und Verwendung

firstChild Die Eigenschaft gibt den ersten Kindknoten des angegebenen Knotens zurück.

Syntax

nodeObject.firstChild
Tips and Notes

Hinweis:Firefox und die meisten anderen Browser betrachten Leerzeichen oder Zeilenumbrüche als Textknoten, während Internet Explorer dies nicht tut. Daher verwenden wir in den folgenden Beispielen eine Funktion, um den Knoten-Typ des ersten Kindknotens zu überprüfen.

Der nodeType eines Elementknotens beträgt 1, daher wird, wenn der erste Kindknoten kein Elementknoten ist, zum nächsten Knoten navigiert und überprüft, ob dieser Knoten ein Elementknoten ist. Dies wird fortgesetzt, bis der erste Kindknoten (muss ein Elementknoten sein) gefunden wird. Auf diese Weise wird das Ergebnis in allen Browsern korrekt sein.

Hinweis:Für mehr Informationen über Unterschiede zwischen Browsern besuchen Sie bitte das Kapitel DOM-Browser in der XML DOM-Anleitung.

Beispiel

Beispiel 1

Nachstehender Code lädt "books.xml" in xmlDoc und zeigt den Knotenname des ersten Kindknotens an:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Überprüfen, ob der erste Knoten ein Elementknoten ist
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 =
    "Nodename: " + x.nodeName +"
    " (nodetype: " + x.nodeType + ")<br>"
}

Try It Yourself

Beispiel 2

Erhalten des letzten Kindknotens des Dokuments:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Überprüfen, ob der letzte Knoten ein Elementknoten ist
function get_lastchild(n) {
    var x = n.lastChild;
    while (x.nodeType != 1) {
        x = x.previousSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    // Erhalten des letzten Kindknotens des Dokuments
    var x = get_lastchild(xmlDoc);
    // Erhalten des letzten Kindknotens der Wurzelelemente
    var y = get_lastchild(xmlDoc.documentElement);
    document.getElementById("demo").innerHTML =
    "Nodename: " + x.nodeName +" 
    " (nodetype: " + x.nodeType + ")<br>" +
    "Nodename: " + y.nodeName + 
    " (nodetype: " + y.nodeType + ")<br>";
}

Try It Yourself