recomiendo el uso de $('#foo').children().size()
para un mejor rendimiento.
He creado una prueba jsperf para ver la diferencia de velocidad y el método children()
batido el selector de hijo (#foo> div) Enfoque por lo menos el 60% en Chrome (canario acumulación v15) 20-30% en Firefox (v4).
Por cierto, no hace falta decir que estos dos enfoques producen los mismos resultados (en este caso, 1000).
[Actualización] He actualizado la prueba para incluir el tamaño() vs prueba de longitud, y ellos no lo convierte diferencia mucho (resultado: length
uso es ligeramente más rápida (2%) que size()
)
[Actualizar] Debido al marcado incorrecto visto en el OP (antes de la actualización 'marcado validada' por mí), ambos $("#foo > div").length
& $('#foo').children().length
resultaron lo mismo (jsfiddle). Pero para la respuesta correcta para obtener SOLO 'div' hijos, uno debe usar selector de hijo para el correcto & mejor rendimiento
He añadido una prueba jsperf para ver la diferencia de velocidad entre los diferentes enfoques. ver mi respuesta a continuación – manikanta