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
Browser compatibility
Desktop | Mobile | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Basic support | Chrome Full support 1 | Edge Full support Yes | Firefox Full support Yes | IE Full support 7 | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android ? |
Legend
- Full support
- Full support
- Compatibility unknown
- Compatibility unknown