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 |
|---|---|---|
| DOMThe 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.
Update compatibility data on GitHub
| 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
See also
Node.hasChildNodes() by Mozilla Contributors is licensed under CC-BY-SA 2.5.