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
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
- Los interfaces puros
ParentNode
yChildNode
.