Web/API/Node/hasChildNodes

From Get docs
< Web/API‎ | Node


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 just node.firstChild)
  • node.childNodes && node.childNodes.length (or node.childNodes.length > 0)

Specifications

Specification Status Comment
DOMThe definition of 'Node: hasChildNodes' in that specification. Living Standard

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
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