Eu recomendo usar $('#foo').children().size()
para um melhor desempenho.
Criei um teste jsperf para ver a diferença de velocidade e o children()
método superou a abordagem do seletor filho (#foo> div) em pelo menos 60% no Chrome (canary build v15) 20-30% no Firefox (v4).
A propósito, escusado será dizer que essas duas abordagens produzem os mesmos resultados (neste caso, 1000).
[Atualização] Atualizei o teste para incluir o tamanho () versus o comprimento, e eles não fazem muita diferença (resultado: o length
uso é um pouco mais rápido (2%) do que size()
)
[Update] Devido à marcação incorreta visto no OP (antes de 'marcação validado' update por mim), ambos $("#foo > div").length
& $('#foo').children().length
resultou o mesmo ( jsFiddle ). Mas, para uma resposta correta, para obter APENAS filhos 'div', deve-se usar o seletor de filhos para obter o desempenho correto e melhor