jQuery padres encadenamiento (), ¿hay una manera más fácil?
-
29-09-2019 - |
Pregunta
Hay, tengo algunas marcas como esto
<div id="some-id">
<h2><a href="#">Title</a></h2>
</div>
y un poco de jQuery como esto
$(this).parent().parent().attr("id")
$ (este) se refiere a la 'a' etiqueta dentro de la 'h2'
¿Hay una manera más fácil para seleccionar el div padre sin utilizar parent () dos veces. Probé
$(this).parent("div").attr("id")
pero no hizo el trabajo.
Gracias
Solución
Se puede usar .closest()
, como esto:
$(this).closest("div").attr("id")
puede probarlo aquí .
.parent("div")
no es tan intuitivo como parece, se hace solamente del < strong> inmediata ??strong> los padres si que coincide con el selector, .closest()
sube los padres hasta ??em> que coincide con el selector.
Tenga en cuenta que (no se aplica a este ejemplo) si this
coincide con el selector, devuelve que elemento, que no empezar con el primer padre, se inicia con ella misma.