Zalecam używanie $('#foo').children().size()
dla lepszej wydajności.
Stworzyłem test jsperf, aby zobaczyć różnicę prędkości, a children()
metoda pokonała podejście selektora dziecka (#foo> div) o co najmniej 60% w Chrome (wersja kanaryjska v15) o 20-30% w przeglądarce Firefox (v4).
Nawiasem mówiąc, nie trzeba dodawać, że te dwa podejścia dają takie same wyniki (w tym przypadku 1000).
[Aktualizacja] Zaktualizowałem test, aby uwzględnić test rozmiaru () w porównaniu z długością i nie mają one większego znaczenia (wynik: length
użycie jest nieco szybsze (2%) niż size()
)
[Aktualizacja] Ze względu na niepoprawne znaczniki widoczne w OP (przed aktualizacją „zweryfikowaną znacznikami” przeze mnie), oba $("#foo > div").length
& $('#foo').children().length
skutkowały tym samym ( jsfiddle ). Ale aby uzyskać poprawną odpowiedź, aby uzyskać TYLKO dzieci „div”, jeden POWINIEN użyć selektora podrzędnego, aby uzyskać poprawną i lepszą wydajność