Proprietà firstChild DOM XML
❮ Oggetto Elemento
Esempio
Il seguente frammento di codice carica " books.xml " in xmlDoc e ottiene il primo nodo figlio:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
//
Check if the first node is an element node
function get_firstchild(n) {
var x = n.firstChild;
while (x.nodeType != 1) {
x = x.nextSibling;
}
return x;
}
function myFunction(xml) {
var x, i, txt, firstNode, xmlDoc;
xmlDoc = xml.responseXML;
x = xmlDoc.documentElement;
txt = "";
firstNode = get_firstchild(x);
for (i = 0; i < firstNode.childNodes.length; i++) {
if (firstNode.childNodes[i].nodeType == 1) {
//Process only element nodes
txt += firstNode.childNodes[i].nodeName +
" = " +
firstNode.childNodes[i].childNodes[0].nodeValue + "<br>";
}
}
document.getElementById("demo").innerHTML
= txt;
}
L'output del codice sopra sarà:
title = Everyday Italian
author = Giada De Laurentiis
year = 2005
price = 30.00
Definizione e utilizzo
La proprietà firstChild restituisce il primo nodo figlio dell'elemento selezionato
Se il nodo selezionato non ha figli, questa proprietà restituisce NULL.
Sintassi
elementNode.firstChild
Suggerimenti e note
Nota: Firefox e la maggior parte degli altri browser tratteranno gli spazi vuoti o le nuove righe come nodi di testo, Internet Explorer no. Quindi, nell'esempio seguente, abbiamo una funzione che controlla il tipo di nodo del primo nodo figlio.
Nodi elemento ha un nodeType di 1, quindi se il primo nodo figlio non è un nodo elemento, si sposta al nodo successivo e controlla se questo nodo è un nodo elemento. Ciò continua fino a quando non viene trovato il primo nodo figlio (che deve essere un nodo elemento). In questo modo, il risultato sarà corretto in tutti i browser.
Suggerimento: per saperne di più sulle differenze tra i browser, visita il nostro capitolo sui browser DOM nel nostro tutorial XML DOM.
❮ Oggetto Elemento