Je recommande d'utiliser $('#foo').children().size()
pour une meilleure performance.
J'ai créé un test jsperf pour voir la différence de vitesse et la méthode children()
battu le sélecteur d'enfant (#foo> div) approche d'au moins 60% dans Chrome (canari construction v15) 20-30% dans Firefox (v4). Par ailleurs, il va sans dire que ces deux approches produisent les mêmes résultats (dans ce cas, 1000).
[Mise à jour] J'ai mis à jour le test d'inclure la taille() vs test de longueur, et ils ne fait pas beaucoup de différence (résultat: l'utilisation length
est légèrement plus rapide (2%) que size()
)
[Mise à jour] En raison du balisage incorrect vu dans l'OP (avant la mise à jour 'markup validated' par moi), les deux $("#foo > div").length
& $('#foo').children().length
ont abouti le même (jsfiddle). Mais pour la réponse correcte pour obtenir seulement « div » enfants, il faut utiliser sélecteur d'enfant pour une meilleure performance correcte &
J'ai ajouté un test de jsperf pour voir la différence de vitesse entre les différentes approches. voir ma réponse ci-dessous – manikanta