The Node.hasChildNodes() method returns a Boolean value indicating whether the current Node has child nodes or not.
Syntax
result = node.hasChildNodes();
result- holds the return value
trueorfalse.
Examples
The next example removes the first child node inside the element with the id "foo" if foo has child nodes.
var foo = document.getElementById("foo");
if (foo.hasChildNodes()) {
// do something with 'foo.childNodes'
}
Polyfill
;(function(prototype) {
prototype.hasChildNodes = prototype.hasChildNodes || function() {
return !!this.firstChild;
}
})(Node.prototype);
Summary
There are various ways to determine whether the node has a child node.
- node.hasChildNodes()
- node.firstChild != null (or just node.firstChild)
- node.childNodes && node.childNodes.length (or node.childNodes.length > 0)
Specification
Browser compatibility
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Basic support | (Yes) | (Yes) | (Yes) | 7.0 | (Yes) | (Yes) |
| Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |