Proprietà firstChild dell'XML DOM

Definizione e uso

firstChild L'attributo restituisce il primo figlio del documento.

Sintassi

documentObject.firstChild
Suggerimenti e Note

Attenzione:Firefox e la maggior parte degli altri browser considerano gli spazi bianchi o i righi di riporto come nodi di testo, mentre Internet Explorer non lo fa. Pertanto, nell'esempio seguente, utilizziamo una funzione per controllare il tipo di nodo del primo figlio.

Il nodeType degli elementi è 1, quindi se il primo figlio non è un nodo elemento, si sposterà al nodo successivo e si verificherà se questo nodo è un nodo elemento. Questo processo continuerà fino a trovare il primo figlio (deve essere un nodo elemento). In questo modo, il risultato sarà corretto in tutti i browser.

Suggerimento:Per ulteriori informazioni sulle differenze tra i browser, visitare la sezione DOM Browser dell'insegnamento XML DOM.

Esempio

Esempio 1

Il seguente codice carica "books.xml" in xmlDoc e visualizza il nome del primo figlio e il tipo di nodo:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Verificare se il primo nodo è un nodo elemento
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>"
}

Prova personalmente

Esempio 2

Ottenere l'ultimo figlio del documento:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Verificare se l'ultimo nodo è un nodo elemento
function get_lastchild(n) {
    var x = n.lastChild;
    while (x.nodeType != 1) {
        x = x.previousSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    // Ottenere l'ultimo figlio del documento
    var x = get_lastchild(xmlDoc);
    // Ottenere l'ultimo figlio dell'elemento radice
    var y = get_lastchild(xmlDoc.documentElement);
    document.getElementById("demo").innerHTML =
    "Nodename: " + x.nodeName +"}} 
    " (nodetype: " + x.nodeType + ")<br>" +
    "Nodename: " + y.nodeName + 
    " (nodetype: " + y.nodeType + ")<br>";
}

Prova personalmente