Saltar al contenido

jQuery primer hijo de “esto”

Solución:

Si desea aplicar un selector al contexto proporcionado por un conjunto jQuery existente, pruebe la función find ():

element.find(">:first-child").toggleClass("redClass");

Jørn Schou-Rode señaló que probablemente solo desee encontrar el primero descendiente directo del elemento de contexto, de ahí el selector secundario (>). También señala que también podría usar la función children (), que es muy similar a find () pero solo busca un nivel profundo en la jerarquía (que es todo lo que necesita …):

element.children(":first").toggleClass("redClass");

Utilizar el children funcionar con el :first selector para obtener el soltero primer hijo de element:

element.children(":first").toggleClass("redClass");

Agregué 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 de jQuery:

  1. $(":first-child", notif) – 4.304 operaciones / seg – el más rápido
  2. notif.children(":first") – 653 operaciones / seg – 85% más lento
  3. notif.children()[0] – 1.416 operaciones / seg – 67% más lento

Formas nativas:

  1. JavaScript nativo ‘ ele.firstChild4.934.323 ops / seg (todos los enfoques anteriores son 100% más lentos en comparación con firstChild)
  2. DOM nativo ele de jQery: notif[0].firstChild4.913.658 operaciones / seg

Por lo tanto, los primeros 3 enfoques de jQuery no se recomiendan, al menos para el primer hijo (dudo que ese sea el caso de muchos otros también). Si tiene un objeto jQuery y necesita obtener el primer hijo, entonces obtener el elemento DOM nativo desde el objeto jQuery, usando una referencia de matriz [0] (recomendado) o .get(0) y usa el ele.firstChild. Esto da los mismos resultados idénticos que el uso regular de JavaScript.

todas las pruebas se realizan en Chrome Canary build v15.0.854.0

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *