ParentNode.firstElementChild

La propiedad de s贸lo lectura ParentNode.firstElementChild retorna el primer hijo del objeto Element, o bien null si no existen elementos hijos.

Esta propiedada fue definida inicialmente en el interfaz puro ElementTraversal. Como este interfaz conten铆a dos juegos distintos de propiedades, uno orientado a Node que ten铆a hijos, y otro a aquellos que eran hijos, se trasladaron a dos interfaces puros separados, ParentNode y ChildNode. En este caso, firstElementChild fue movido a ParentNode. Es un cambio de car谩cter estrictamente t茅cnico que no deber铆a afectar a la compatibilidad.

Sintaxis

var childNode = elementNodeReference.firstElementChild;

Ejemplo

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

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

En este ejemlpo, la alerta muestra 'span', que es el nombre de la etiqueta del primer nodo hijo dele elemento p谩rrafo.

Polyfill para Internet Explorer 8

Esta propiedad no est谩 soportada con anterioridad a  IE9, as铆 que el siguiente fragmento puede ser usado para a帽adir el soporte a IE8:

// Source: https://github.com/Alhadis/Snippets/blob/master/js/polyfills/IE8-child-elements.js
if(!("firstElementChild" in document.documentElement)){
    Object.defineProperty(Element.prototype, "firstElementChild", {
        get: function(){
            for(var nodes = this.children, n, i = 0, l = nodes.length; i < l; ++i)
                if(n = nodes[i], 1 === n.nodeType) return n;
            return null;
        }
    });
}

Especificaci贸n

Especificaci贸n Estado Observaciones
DOM
La definici贸n de 'ParentNode.firstElementChild' en esta especificaci贸n.
Living Standard Dividido el interfaz ElementTraversal en ChildNode y ParentNode. Este m茅todo queda definido ahora en el segundo.
Los Document y DocumentFragment implementaron los nuevos interfaces.
Element Traversal Specification
La definici贸n de 'ElementTraversal.firstElementChild' en esta especificaci贸n.
Obsolete A帽adida su definici贸n inicial al interfaz puro ElementTraversal y lo usa en Element.

Compatibilidad con navegadores

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Prestaci贸n Chrome Firefox (Gecko) Internet Explorer Opera Safari
Soporte b谩sico (en Element) 1.0 3.5 (1.9.1) 9.0 10.0 4.0
Soporte en Document y DocumentFragment 29.0 25.0 (25.0) Sin soporte 16.0 Sin soporte
Prestaci贸n Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Soporte b谩sico (en Element) (Yes) 1.0 (1.9.1) (Yes) (Yes) (Yes)
Soporte en Document y DocumentFragment (Yes) 25.0 (25.0) Sin soporte 16.0 Sin soporte

Ver tambi茅n