XML DOM firstChild Attribut

Definition und Verwendung

firstChild Das Attribut gibt den ersten Kindknoten des Dokuments zurück.

Syntax

documentObject.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 ist 1, daher wird, wenn der erste Kindknoten kein Elementknoten ist, auf den nächsten Knoten geprüft, ob dieser ein Elementknoten ist. Dies wird fortgesetzt, bis der erste Kindknoten (muss ein Elementknoten sein) gefunden wird. Auf diese Weise ist das Ergebnis in allen Browsern korrekt.

Hinweis:Für mehr Informationen über die Unterschiede zwischen Browsern besuchen Sie bitte das Kapitel DOM-Browser im XML DOM-Tutorial.

Beispiel

Beispiel 1

Nachstehender Code lädt "books.xml" in xmlDoc und zeigt den Knotenname und den Knotentyp 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