Tengo un <div>
que tiene muchos otros <div>
s dentro, cada uno en un nivel de anidamiento diferente. En lugar de darle a cada niño <div>
un identificador, prefiero simplemente darle <div>
el identificador a la raíz . Aquí hay un ejemplo:
<div class="a" id="a5">
<div class="b">
<div class="c">
<a class="d">
</a>
</div>
</div>
</div>
Si escribo una función en jQuery para responder a la clase d
y quiero encontrar el ID de su clase principal a
, ¿cómo lo haría?
No puedo simplemente hacer $('.a').attr('id');
, porque hay varias clases a
s. Podría encontrar la ID de su padre, pero parece que tiene un diseño pobre, lento y no muy polimórfico (tendría que escribir un código diferente para encontrar la ID de la clase c
).
Pase un selector a la función de padres jQuery :
EDITAR Hmm, en realidad la respuesta de Slaks es superior si solo quieres el antepasado más cercano que coincida con tu selector.
fuente
Puede usar parents () para obtener todos los padres con el selector dado.
Pero parent () obtendrá solo el primer padre del elemento.
jQuery parent () vs.padres ()
Y hay .parentsUntil () que creo que será el mejor.
fuente
closest
.Utilice .parentsUntil ()
fuente
Extraído de los comentarios de @ Resord arriba. Este funcionó para mí y se inclinó más estrechamente con la pregunta.
Gracias
fuente