HTML DOM Element lastChild
Example
Return the HTML content of the last child node of an <ul> element:
document.getElementById("myList").lastChild.innerHTML;
Try it Yourself »
Get the text of the last child node of a <select> element:
let text = document.getElementById("mySelect").lastChild.text;
Try it Yourself »
More examples below.
Description
The lastChild
property returns the last child node of a node.
The lastChild
property returns returns a node object.
The lastChild
property is read-only.
Important!
lastChild
returns the list child node: An element node, a text node, or a
comment node.
Whitespace between elements are also text nodes.
Alternative:
The lastElementChild
property returns the last child element (ignores text and comment nodes).
See Also:
Node Properties
Nodes vs Elements
In the HTML DOM terminology:
Nodes are all nodes (element nodes, text nodes, and comment nodes).
Whitespace between elements are also text nodes.
Elements are only element nodes.
childNodes vs children
childNodes returns child nodes (element nodes, text nodes, and comment nodes).
children returns child elements (not text and comment nodes).
firstChild vs firstElementChild
firstChild returns the first child node (an element node, a text node or a comment node). Whitespace between elements are also text nodes.
firstElementChild returns the first child element (not text and comment nodes).
lastChild vs lastElementChild
lastChild returns the last child node (an element node, a text node or a comment node). Whitespace between elements are also text nodes.
lastElementChild returns the last child element (not text and comment nodes).
Syntax
element.lastChild
or
node.lastChild
Return Value
Type | Description |
Node | The last child of a node.null if no child exists. |
More Examples
This example demonstrates how whitespace may interfare:
Try to get the node name of the last child node of "myDIV":
<div id="myDIV">
<p>Looks like first child</p>
<p>Looks like last Child</p>
</div>
<script>
let text = document.getElementById("myDIV").lastChild.nodeName;
</script>
Try it Yourself »
However, if you remove the whitespace from the source, there are no #text nodes in "myDIV":
<div id="myDIV"><p>First child</p><p>Last Child</p></div>
<script>
let text = document.getElementById("myDIV").lastChild.nodeName;
</script>
Try it Yourself »
Browser Support
element.lastChild
is a DOM Level 1 (1998) feature.
It is fully supported in all browsers:
Chrome | Edge | Firefox | Safari | Opera | IE |
Yes | Yes | Yes | Yes | Yes | 9-11 |