Proprietà firstChild dell'XML DOM

Definizione e uso

firstChild L'attributo restituisce il primo figlio del nodo specificato.

Sintassi

nodeObject.firstChild
Suggerimenti e Note

Attenzione:Firefox e la maggior parte degli altri browser considerano gli spazi bianchi o le linee di ritorno 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 passerà al nodo successivo e si controllerà 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'XML DOM tutorial.

Esempio

Esempio 1

Il codice seguente carica "books.xml" in xmlDoc e mostra il nome del primo figlio del 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();
// Controllare 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 direttamente

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();
// Controllare 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 direttamente