La propriété en lecture seule Node.firstChild renvoie le premier nœud enfant de l'arbre ou null s'il n'en a pas. Si le noeud est un Document , il renvoie le premier noeud de la liste de ses enfants directs.

Syntaxe

var childNode = node.firstChild;

Exemple

Cet exemple montre l'utilisation de firstChild et la manière dont les nœuds d'espaces peuvent interférer.

<p id="para-01">
  <span>Premier span</span>
</p>

<script type="text/javascript">
  var p01 = document.getElementById('para-01');
  alert(p01.firstChild.nodeName)
</script>

Dans le code ci-dessus, la console affichera « #text » car un nœud texte a été inséré pour préserver les blancs entre la fin des balises ouvrantes <p> et <span>. Tout espace provoquera l'insertion d'un nœud #text , qu'il s'agisse d'un simple espace ou de plusieurs, de retours à la ligne, tabulations, etc.

Un autre nœud #text est inséré entre les balises de fermeture </span> et </p>.

Si ces espaces sont retirés du code source, les nœuds #text n'apparaîtront plus et l'élément span deviendra le premier enfant du paragraphe.

<p id="para-01"><span>Premier span</span></p>

<script type="text/javascript">
  var p01 = document.getElementById('para-01');
  alert(p01.firstChild.nodeName)
</script>

À présent, l'alerte affichera « SPAN ».

Pour éviter le problème avec node.firstChild  renvoyant des noeuds #text ou #commentParentNode.firstElementChild  peut être utilisé pour renvoyer seulement le premier noeud élément. Toutefois,  node.firstElementChild nécessite un "shim" pour Internet Explorer 9 et antérieurs.

Spécification

Spécification Statut Commentaire
DOM
La définition de 'Node.firstChild' dans cette spécification.
Standard évolutif Pas de changement
Document Object Model (DOM) Level 3 Core Specification
La définition de 'Node.firstChild' dans cette spécification.
Obsolete Pas de changement
Document Object Model (DOM) Level 2 Core Specification
La définition de 'Node.firstChild' dans cette spécification.
Obsolete Pas de changement
Document Object Model (DOM) Level 1 Specification
La définition de 'Node.firstChild' dans cette spécification.
Obsolete Définition initiale

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung Internet
Support simpleChrome Support complet OuiEdge Support complet 12Firefox Support complet 1IE Support complet OuiOpera Support complet OuiSafari Support complet OuiWebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile ? Firefox Android Support complet 4Opera Android Support complet OuiSafari iOS Support complet OuiSamsung Internet Android Support complet Oui

Légende

Support complet  
Support complet
Compatibilité inconnue  
Compatibilité inconnue

 

Étiquettes et contributeurs liés au document

Étiquettes : 
Contributeurs à cette page : Eric-ciccotti, loella16, fscholz, AshfaqHossain, Sheppy, Mgjbot, BenoitL, Takenbot
Dernière mise à jour par : Eric-ciccotti,