--- title: Node.firstChild slug: Web/API/Element/firstChild tags: - API - DOM - Node - Proprietà - Referenza translation_of: Web/API/Node/firstChild ---
La proprietà di sola lettura Node.firstChild
restituisce il primo figlio del nodo nell'albero o null
se il nodo non ha figli. Se il nodo è un Document
, restituisce il primo nodo nell'elenco dei suoi figli diretti.
var childNode = node.firstChild;
Questo esempio dimostra l'uso di firstChild
e il modo in cui i nodi degli spazi bianchi potrebbero interferire con l'utilizzo di questa proprietà.
<p id="para-01"> <span>First span</span> </p> <script> var p01 = document.getElementById('para-01'); console.log(p01.firstChild.nodeName); </script>
In quanto sopra, la console console mostrerà '#text' perché viene inserito un nodo di testo per mantenere lo spazio bianco tra la fine dei tag di apertura <p>
e <span>
. Qualsiasi spazio bianco creerà un nodo #text
da un singolo spazio a più spazi, ritorni, schede e così via.
Un altro nodo #text
viene inserito tra i tag di chiusura </span>
e </p>
.
Se questo spazio viene rimosso dall'origine, i nodi #text non vengono inseriti e l'elemento span diventa il primo figlio del paragrafo.
<p id="para-01"><span>First span</span></p> <script> var p01 = document.getElementById('para-01'); console.log(p01.firstChild.nodeName); </script>
Ora l'avviso mostrerà 'SPAN'.
Per evitare il problema con node.firstChild
che restituisce i nodi #text
o #comment
, {{domxref("ParentNode.firstElementChild")}} può essere utilizzato per restituire solo il primo nodo elemento. Tuttavia, node.firstElementChild
richiede uno shim per Internet Explorer 9 e versioni precedenti.
Specifica | Stato | Commentp |
---|---|---|
{{SpecName('DOM WHATWG', '#dom-node-firstchild', 'Node.firstChild')}} | {{Spec2('DOM WHATWG')}} | Nessun cambiamento |
{{SpecName('DOM3 Core', 'core.html#ID-169727388', 'Node.firstChild')}} | {{Spec2('DOM3 Core')}} | Nessun cambiamento |
{{SpecName('DOM2 Core', 'core.html#ID-169727388', 'Node.firstChild')}} | {{Spec2('DOM2 Core')}} | Nessun cambiamento |
{{SpecName('DOM1', 'level-one-core.html#ID-169727388', 'Node.firstChild')}} | {{Spec2('DOM1')}} | Definizione iniziale |
{{Compat("api.Node.firstChild")}}