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.


var children = node.children;


A 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.


var foo = document.getElementById('foo');
for (var 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() {
                var 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

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support1 Yes3.591104
Support on Document and DocumentFragment29 ?25 No16 No
Support on SVGElement Yes No Yes No ? No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes ?4 ?10 Yes
Support on Document and DocumentFragment Yes Yes ? ? ? No Yes
Support on SVGElement ? ? ? ? ? ? ?

1. Internet Explorer 6, 7 and 8 supported it, but erroneously includes Comment nodes.

See also