(Nota: La pregunta se editó el día después de ser pedido, el cambio de la pregunta de aproximadamente parent
a ser sobre parents
[ observar el plural]. ¿Qué tipo de marca la diferencia!)
Re su pregunta original sobreparent
(singular) vs. closest
: parent
solo sube un nivel. closest
comienza con el elemento actual (no solo el padre) y sigue buscando a través de antepasados hasta que encuentra una coincidencia (o se queda sin antepasados).
Re su pregunta actualizada sobreparents
(plural) vs. closest
: Hay dos diferencias:
si el elemento actual se considera (que es con closest
, no es con parents
).
Si la búsqueda se detiene con la primera coincidencia (lo hace con closest
, no con parents
).
Desde su originales pregunta:
de las etiquetas que podría utilizar cualquiera de $ (this) .closest ('tr'); o $ (esto) .parent ('tr');
No, en realidad. $(this).parent('tr');
devolvería un objeto jQuery vacío, porque el padre del span
no coincide con el selector.
Desde su actualizado pregunta:
de las etiquetas que podría utilizar cualquiera de $ (this) .closest ('tr'); o $ (esto) .parents ('tr');
Podría, siempre que su tr
no es también dentro de otro tr
(por ejemplo, una tabla que contiene una tabla).Si ese es el caso, obtendrás el mismo resultado. Pero si tiene una tabla dentro de una tabla, con parents
obtendrá múltiples tr
s (todos elementos del antecesor tr
).
Considere esta estructura:
<div class="wrapper">
<div class="inner">
<p>Testing <span>1 2 3</span></p>
</div>
</div>
Si enganchamos click
en el span
, esto es lo que volver a partir de los tres métodos relevantes:
$(this).parent('div')
- Vaciar objeto jQuery, el padre de el span
no es un div
.
$(this).parents('div')
- jQuery objeto con dosdiv
s en él, los divs "interno" y "envoltorio" (en ese orden).
$(this).closest('div')
- Objeto jQuery con unodiv
en él, el "interno".
Aquí está el resultado si enganchamos click
en el span
y usamos span
como selector:
$(this).parent('span')
- Vaciar objeto jQuery, el padre de la span
no es un span
.
$(this).parents('span')
- Objeto jQuery vacío, span
no tiene antecesor span
s.
$(this).closest('span')
- objeto jQuery con el span
que se hizo clic.
Alguna información aquí con respecto a padre, padres, más cercano: http://markupjavascript.blogspot.in/2013/10/parent-parents-closest-what-is-difference.html –