The Node.hasChildNodes() method returns a Boolean value indicating whether the given Node has child nodes or not.
Syntax
bool = node.hasChildNodes();
Return value
A Boolean that is true if the node has child nodes, and false otherwise.
Example
let foo = document.getElementById('foo');
if (foo.hasChildNodes()) {
// Do something with 'foo.childNodes'
}
Polyfill
Here is one possible polyfill:
;(function(prototype) {
prototype.hasChildNodes = prototype.hasChildNodes || function() {
return !!this.firstChild;
}
})(Node.prototype);
There are various ways to determine whether the node has a child node:
node.hasChildNodes()node.firstChild != null(or justnode.firstChild)node.childNodes && node.childNodes.length(ornode.childNodes.length > 0)
Specifications
| Specification | Status | Comment |
|---|---|---|
| DOM The definition of 'Node: hasChildNodes' in that specification. |
Living Standard |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
hasChildNodes | Chrome Full support 1 | Edge Full support 12 | Firefox Full support Yes | IE Full support 9 | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
Legend
- Full support
- Full support
