Je recommande d'utiliser $('#foo').children().size()
pour de meilleures performances.
J'ai créé un jsperf pour voir la différence de vitesse et la children()
bat l'approche du sélecteur enfant (#foo > div) par au moins 60% dans Chrome (canary build v15) 20-30% dans Firefox (v4).
D'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 pour inclure le test size() vs length, et ils ne font pas beaucoup de différence (résultat : length
est légèrement plus rapide (2 %) que l'utilisation de size()
)
[Mise à jour] En raison d'un balisage incorrect vu dans le PO (avant la mise à jour du 'balisage validé' par moi), les deux $("#foo > div").length
& $('#foo').children().length
a donné le même résultat ( jsfiddle ). Mais pour obtenir une réponse correcte et obtenir UNIQUEMENT les enfants 'div', il faut utiliser le sélecteur d'enfant pour des performances correctes et meilleures.
1 votes
J'ai ajouté un test jsperf pour voir la différence de vitesse entre les différentes approches. voir ma réponse ci-dessous