ParentNode.lastElementChild
The ParentNode.lastElementChild
read-only property
returns the object's last child Element
or null
if there
are no child elements.
Note: This property was initially defined in the
ElementTraversal
pure interface. As this interface contained two
distinct set of properties, one aimed at Node
that have children, one
at those that are children, they have been moved into two separate pure interfaces,
ParentNode
and ChildNode
. In this case,
lastElementChild
moved to ParentNode
. This is a fairly
technical change that shouldn't affect compatibility.
Syntax
const element = node.lastElementChild
Example
<ul id="foo">
<li>First (1)</li>
<li>Second (2)</li>
<li>Third (3)</li>
</ul>
<script>
const foo = document.getElementById('foo');
console.log(foo.lastElementChild.textContent); // logs: Third (3)
</script>
Polyfill
The code below adds support of lastElementChild()
to Document
and DocumentFragment
in Internet Explorer and Safari.
// Overwrites native 'lastElementChild' prototype.
// Returns array instead of 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);
Specifications
Specification | Status | Comment |
---|---|---|
DOM The definition of 'ParentNode.lastElementChild' in that specification. |
Living Standard | Splitted the ElementTraversal interface in ChildNode
and ParentNode . This method is now defined on the latter.The Document and DocumentFragment implemented the
new interfaces. |
Browser compatibility
No compatibility data found for api.ParentNode.lastElementChild
.
Check for problems with this page or contribute missing data to mdn/browser-compat-data.
See also
- The
ParentNode
andChildNode
pure interfaces. -
Object types implementing this pure interface:
Document
,Element
, andDocumentFragment
.