He agregado la prueba jsperf para ver la diferencia de velocidad para diferentes enfoques para obtener el primer hijo (un total de más de 1000 niños)
dado, notif = $('#foo')
Formas jQuery:
$(":first-child", notif)
- 4,304 operaciones / seg - más rápido
notif.children(":first")
- 653 operaciones / seg. - 85% más lento
notif.children()[0]
- 1,416 operaciones / seg. - 67% más lento
Maneras nativas:
- JavaScript nativo '
ele.firstChild
: 4.934.323 operaciones / segundo (todos los enfoques anteriores son 100% más lentos en comparación con firstChild
)
- DOM nativo de jQery:
notif[0].firstChild
- 4,913,658 operaciones / seg.
Por lo tanto, no se recomiendan los primeros 3 enfoques jQuery, al menos para el primer hijo (dudo que ese sea el caso con muchos otros también). Si tiene un objeto jQuery y necesita obtener el primer hijo, obtenga el elemento DOM nativo del objeto jQuery, utilizando la referencia de matriz [0]
(recomendado) o .get(0)
use el ele.firstChild
. Esto proporciona los mismos resultados idénticos que el uso regular de JavaScript.
todas las pruebas se realizan en Chrome Canary build v15.0.854.0