Ich habe hinzugefügt jsperf Test, um den Geschwindigkeitsunterschied zwischen den verschiedenen Ansätzen zur Ermittlung des ersten Kindes zu ermitteln (insgesamt 1000+ Kinder)
gegeben, notif = $('#foo')
jQuery-Wege:
$(":first-child", notif)
- 4.304 ops/sec - am schnellsten
notif.children(":first")
- 653 ops/sec - 85% langsamer
notif.children()[0]
- 1.416 Ops/Sek. - 67 % langsamer
Einheimische Wege:
- JavaScript nativ'
ele.firstChild
- 4,934,323 ops/sec (alle oben genannten Ansätze sind 100 % langsamer im Vergleich zu firstChild
)
- Natives DOM ele von jQery:
notif[0].firstChild
- 4,913,658 Ops/Sek.
Also, erste 3 jQuery Ansätze sind nicht zu empfehlen, zumindest für first-child (ich bezweifle, dass der Fall mit vielen anderen auch sein würde). Wenn Sie ein jQuery-Objekt haben und das erste Kind abrufen müssen, dann das native DOM-Element erhalten aus dem jQuery-Objekt, mit Array-Referenz [0]
(empfohlen) ou .get(0)
und verwenden Sie die ele.firstChild
. Dies führt zu denselben Ergebnissen wie die Verwendung von JavaScript.
alle Tests wurden mit Chrome Canary Build v15.0.854.0 durchgeführt