JavaScript’s Node.lastChild read-only property returns the Node’s last child or null if the Node has no children.

Value

A Node object or null if the node has no children.

Examples

Here is an example of using the lastChild property.

Consider the following lines of HTML:

<p id="paragraph">
 <span><b>JavaScript</b> is one of the most important programming languages.</span>
</p>

If we run the following lines of JavaScript, what do you think will be logged to the console?

let paragraph = document.getElementById('paragraph');
console.log(paragraph.lastChild.nodeName);

You may have thought that the logged string would have been “span,” or something similar. So, why was “#text” logged to the console instead?

It was because there is some whitespace after the span element, and any whitespace, from a single space to multiple spaces, will create a Text node.

What if we modified our HTML like this and run the JavaScript again?

<p id="paragraph"><span><b>JavaScript</b> is one of the most important programming languages.</span></p>

Well, as expected, the logged string would be “SPAN.”

What is the difference between lastChild and lastElementChild?

The Node.lastChild property is very similar to the Element.lastElementChild property. Their only difference is that the latter ignores Comment and Text nodes and only returns Element nodes.

Browser compatibility

Chrome
Edge
Firefox
Internet Explorer
Opera
Safari
Chrome (Android)
Firefox (Android)
Opera (Android)
Safari (iOS)
Samsung Internet
WebView (Android)
lastChild 1 12 1 6 12.1 1 18 45 12.1 1 1.0 4.4

See also