ParentNode.childElementCount

A propriedade ParentNode.childElementCount, do tipo "somente leitura" (read-only), tem como retorno um unsigned long que representa q quantidade de elementos filhos de um outro determinado elemento.

Essa propriedade foi inicialmente definida na interface pura ElementTraversal. Como essa interface continha dois conjuntos distintos de propriedades, sendo uma destinada para Node que tem filhos, e outra destinada para aqueles que são filhos de fato, essas propriedades foram movidas para duas interfaces puras distintas: ParentNode e ChildNode. Nesse caso, childElementCount foi movido para ParentNode.  Essa é uma alteração bastante técnica que não deve afetar a compatibilidade.

Sintaxe

var count = node.childElementCount;
count
variável que recebe o valor retornado pelo método, sendo esse valor do tipo unsigned long (simplesmente um número inteiro).
node
Objeto que representa Document, DocumentFragment, ou Element.

Exemplo

var foo = document.getElementById('foo');
if (foo.childElementCount > 0) {
  // Faz algo
}

Utilizando Polyfill no IE8, IE9 e Safari

Essa propriedade não é suportada em versões anteriores ao IE9. Já no IE9 ou Safari, não será suportada somente por Objetos de Document e DocumentFragment.

;(function(constructor) {
  if (constructor &&
      constructor.prototype &&
      constructor.prototype.childElementCount == null) {
    Object.defineProperty(constructor.prototype, 'childElementCount', {
      get: function() {
        var i = 0, count = 0, node, nodes = this.childNodes;
        while (node = nodes[i++]) {
          if (node.nodeType === 1) count++;
        }
        return count;
      }
    });
  }
})(window.Node || window.Element);

Especificações

Especificações Status Comentários
DOM
The definition of 'ParentNode.childElementCount' in that specification.
Padrão em tempo real Divide a interface ElementTraversal entre ChildNode e ParentNode. Esse método é definido ao final.
Document e DocumentFragment implementam essas novas interfaces.
Element Traversal Specification
The definition of 'ElementTraversal.childElementCount' in that specification.
Obsoleto

Adicionada sua definição inicial à interface pura do ElementTraversal e use-a em Element.

Compatibilidade de navegadores

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
childElementCountChrome Full support 1Edge Full support 12Firefox Full support 3.5IE Full support 9Opera Full support 10Safari Full support 4WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
Support on Document and DocumentFragment
Experimental
Chrome Full support 29Edge Full support ≤79Firefox Full support 25IE No support NoOpera Full support 16Safari No support NoWebView Android Full support YesChrome Android Full support YesFirefox Android ? Opera Android ? Safari iOS No support NoSamsung 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.

Veja também