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 ChildNode e ParentNode . 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 . |
Vedi anche
- Le interfacce pure
ParentNode
eChildNode
.