ParentNode.firstElementChild

La proprietà ParentNode.firstElementChild di sola lettura restituisce il primo figlio Element dell'oggetto, oppure null se non ha elementi figli.

Questa proprietà era inizialmente definita nell'interfaccia pura ElementTraversal pure interface. Poiché questa interfaccia conteneva due distinti set di proprietà, una diretta al Node che ha figli, una a quelli che sono figli, sono stati spostati in due interfacce pure separate, ParentNode e ChildNode. In questo caso, firstElementChild è stato spostato su ParentNode. Questa è una modifica abbastanza tecnica che non dovrebbe influire sulla compatibilità.

Sintassi

var element = node.firstElementChild;

Esempio

<ul id="foo">
  <li>First  (1)</li>
  <li>Second (2)</li>
  <li>Third  (3)</li>
</ul>

<script>
var foo = document.getElementById('foo');
// yields: First  (1)
console.log(foo.firstElementChild.textContent);
</script>

Polyfill per IE8, IE9 e Safari

// Overwrites native 'firstElementChild' prototype.
// Adds Document & DocumentFragment support for IE9 & Safari.
// Returns array instead of HTMLCollection.
;(function(constructor) {
    if (constructor &&
        constructor.prototype &&
        constructor.prototype.firstElementChild == null) {
        Object.defineProperty(constructor.prototype, 'firstElementChild', {
            get: function() {
                var node, nodes = this.childNodes, i = 0;
                while (node = nodes[i++]) {
                    if (node.nodeType === 1) {
                        return node;
                    }
                }
                return null;
            }
        });
    }
})(window.Node || window.Element);

Specifiche

Specifica Stato Commento
DOM
The definition of 'ParentNode.firstElementChild' in that specification.
Living Standard Diviso l'interfaccia ElementTraversal in ChildNodeParentNode. Questo metodo è ora definito su quest'ultimo.
Il Document e DocumentFragment implementato le nuove interfacce.
Element Traversal Specification
The definition of 'ElementTraversal.firstElementChild' in that specification.
Obsolete Aggiunta la sua definizione iniziale all'interfaccia pura ElementTraversal e usarla su Element.

Compatibilità con i browser

BCD tables only load in the browser

Vedi anche