La propriété en lecture seule ParentNode.lastElementChild
renvoie le dernier enfant de l'objet Element
ou null
s'il n'y a pas d'élément enfant.
Cette propriiété a été définie initialement dans la pure interface ElementTraversal
. Comme cette interface contenait deux différents jeux de propriétés, l'un visant les Node
(noeuds) qui ont des enfants, l'autre les enfants, ils ont été déplacés dans deux interfaces pures, ParentNode
et ChildNode
. Dans ce cas, childElementCount
a été rattaché à ParentNode
. C'est un changement assez technique qui ne devrait pas affecter la compatibilité.
Syntaxe
var element = node.lastElementChild;
Exemple
<ul id="foo">
<li>First (1)</li>
<li>Second (2)</li>
<li>Third (3)</li>
</ul>
<script>
var foo = document.getElementById('foo');
// produit : Third (3)
console.log(foo.lastElementChild.textContent);
</script>
Polyfill for IE8, IE9 and Safari
// Remplace le prototype "lastElementChild" natif.
// Ajout de Document & DocumentFragment pris en charge pour IE9 & Safari.
// Renvoie un tableau (array) à la place de HTMLCollection.
;(function(constructor) {
if (constructor &&
constructor.prototype &&
constructor.prototype.lastElementChild == null) {
Object.defineProperty(constructor.prototype, 'lastElementChild', {
get: function() {
var node, nodes = this.childNodes, i = nodes.length - 1;
while (node = nodes[i--]) {
if (node.nodeType === 1) {
return node;
}
}
return null;
}
});
}
})(window.Node || window.Element);
Spécification
Spécification | Statut | Commentaire |
---|---|---|
DOM La définition de 'ParentNode.lastElementChild' dans cette spécification. |
Standard évolutif | Divise l'interface ElementTraversal en ChildNode et ParentNode . La propriété est maintenant définie sur cette dernière.Les Document et DocumentFragment implémentent la nouvelle interface. |
Element Traversal Specification La définition de 'ElementTraversal.lastElementChild' dans cette spécification. |
Obsolete | Ajout de sa définition initiale à la pure interface ElementTraversal et de son utilisation sur Element . |
Compatibilité des navigateurs
Nous convertissons les données de compatibilité dans un format JSON.
Ce tableau de compatibilité utilise encore l'ancien format
car nous n'avons pas encore converti les données qu'il contient.
Vous pouvez nous aider en contribuant !
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support (on Element ) |
1.0 | 3.5 (1.9.1) | 9.0 | 10.0 | 4.0 |
Support on Document and DocumentFragment |
29.0 | 25.0 (25.0) | Pas de support | 16.0 | Pas de support |
Fonctionnalité | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support (on Element ) |
(Oui) | 1.0 (1.9.1) | (Oui) | (Oui) | (Oui) |
Support on Document and DocumentFragment |
(Oui) | 25.0 (25.0) | Pas de support | 16.0 | Pas de support |
Voir aussi
- Les interfaces pures
ParentNode
etChildNode
.