ParentNode.children

The ParentNode property children is a read-only property that returns a live HTMLCollection which contains all of the child elements of the node upon which it was called.

Syntax

let children = node.children;

Value

An HTMLCollection which is a live, ordered collection of the DOM elements which are children of node. You can access the individual child nodes in the collection by using either the item() method on the collection, or by using JavaScript array-style notation.

If the node has no element children, then children is an empty list with a length of 0.

Example

const foo = document.getElementById('foo');
for (let i = 0; i < foo.children.length; i++) {
  console.log(foo.children[i].tagName);
}

Polyfill

// Overwrites native 'children' prototype.
// Adds Document & DocumentFragment support for IE9 & Safari.
// Returns array instead of HTMLCollection.
;(function(constructor) {
  if (constructor &&
    constructor.prototype &&
    constructor.prototype.children == null) {
    Object.defineProperty(constructor.prototype, 'children', {
      get: function() {
        let i = 0, node, nodes = this.childNodes, children = [];
        while (node = nodes[i++]) {
          if (node.nodeType === 1) {
            children.push(node);
          }
        }
        return children;
      }
    });
  }
})(window.Node || window.Element);

Specification

Specification Status Comment
DOM
The definition of 'ParentNode.children' in that specification.
Living Standard Initial definition.

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
childrenChrome Full support 1Edge Full support 12Firefox Full support 3.5IE Full support 9
Notes
Full support 9
Notes
Notes Internet Explorer 6, 7 and 8 supported it, but erroneously includes Comment nodes.
Opera Full support 10Safari Full support 4WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 9Samsung Internet Android Full support 1.0
Support on Document and DocumentFragment
Experimental
Chrome Full support 29Edge Full support 16Firefox Full support 25IE No support NoOpera Full support 16Safari Full support 9WebView Android Full support YesChrome Android Full support YesFirefox Android ? Opera Android ? Safari iOS Full support 9Samsung Internet Android Full support Yes
Support on SVGElement
Experimental
Chrome Full support YesEdge Full support 16Firefox Full support YesIE No support NoOpera ? Safari Full support 9WebView Android Full support YesChrome Android Full support YesFirefox Android ? Opera Android ? Safari iOS Full support 9Samsung Internet Android Full support Yes

Legend

Full support
Full support
No support
No support
Compatibility unknown
Compatibility unknown
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
See implementation notes.
See implementation notes.

See also