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