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.


let children = node.children;


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.


const foo = document.getElementById('foo');
for (let i = 0; i < foo.children.length; i++) {


// 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) {
        return children;
})(window.Node || window.Element);


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

Browser compatibility

No compatibility data found for api.ParentNode.children.
Check for problems with this page or contribute missing data to mdn/browser-compat-data.

See also