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.

Veja também