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.