prev jquery

jquery - prev - ¿Hay un equivalente a.closest() que busca el árbol DOM en lugar de arriba?



jquery siblings (5)

En caso de que alguien necesite buscar, es fácil con el método .parents() .

Puede dejarlo vacío, o especificar selectores como .parents ("div") .

¿Hay un equivalente a .closest() que busca el árbol DOM en lugar de arriba?


La búsqueda más cercana está relacionada con las documentaciones "Para cada elemento del conjunto, obtenga el primer elemento que coincida con el selector probando el elemento en sí mismo y avanzando a través de sus ancestros en el árbol DOM" y, como puede ver, "Los .children() método difiere de .find() en que .children() solo viaja un nivel hacia abajo en el árbol DOM, mientras que .find() puede atravesar varios niveles para seleccionar elementos descendientes (nietos, etc.) también ". No encontré una buena solución para el árbol closest porque lo bueno de closest es que deja de buscar elementos cuando encuentra el primer selector coincidente y find búsqueda continua. Entonces, lo que puedes hacer es usar el filtro .first() .

$(''selector'').first();

O

obj.find(''selector'').first();

Encontrará una coincidencia de elementos múltiples pero devolverá solo el primer elemento como el closest pero con menos rendimiento.

https://api.jquery.com/first/


Puedes usar el método find() Y obtener el first elemento del conjunto resultante.


$(''#Id div:first'') también hace lo que está buscando.

También tenga en cuenta que mientras más cercano () solo devuelve un elemento, find (), children () y también $ ("# Id div") devuelve todos los elementos coincidentes, por lo que debe agregar .first () o: first para reducir el resultado a la primera ocurrencia.


El método closest realidad busca en el árbol (a pesar de lo que dice la documentación), pero sé lo que quieres decir. Quieres uno que busque entre los hijos del elemento. Dependiendo de cómo quieras buscar:

$(''#Id'').children(''div'');

o

$(''#Id'').find(''div'');