¿Quiere decir algo como esto?
$('.click-me').click(function() {
var $theAncestor = $(this).closest('#ancestor-1');
}
Esto buscará a través de todos los antepasados hasta que se encuentre una coincidencia.
http://api.jquery.com/closest/
EDIT:
Jerome, su pregunta se puede interpretar de varias maneras. Esto habla del poder y la flexibilidad de jQuery.
Por favor, considere lo siguiente.
Primero, para responder a su pregunta, sí, es posible utilizar jQuery para seleccionar un antecesor de un elemento.
creo que podemos asumir que son conscientes de la capacidad de jQuery para seleccionar cualquier elemento, ya sea ascendiente o descendiente a través de:
$('#myElement')
Teniendo en cuenta el clic-me ejemplo, si le gustaría tener un conjunto de todos los antepasados de un elemento devuelto, utilice:
$(this).parents()
o
$(this).parents(selector)
Pero tenga en cuenta que esto atravesará TODOS los antepasados devolviéndolo todo, o todos los que coincidan cuando se entregue un selector.
Si desea tener el padre inmediato regresaron, utilice:
$(this).parent()
Si sabe qué ancestro que necesita, utilice:
$(this).closest(selector)
pero tenga en cuenta que sólo se devolverá el primera coincidencia, y si el elemento actual (esta) es una coincidencia, devolverá eso.
Espero que esto ayude.
La diferencia entre 'parents()' y 'closest()' es sutil pero importante. 'closest()' devolverá el elemento actual si es una coincidencia; 'parents()' devuelve _only ancestros_. Muchos no quieren la posibilidad de devolver el elemento actual. 'closest()' también solo devuelve un elemento; 'parents()' devuelve todos los elementos coincidentes. –
@Ryan - Mi respuesta fue específica a la pregunta. La pregunta sugiere una consulta para un ancestroID específico, en lugar de una consulta general sobre cuáles son los padres. Dada la naturaleza creciente de los identificadores ancestrales, parece que jerome puede intentar calcular la identidad del ancestro desde el contexto y solicitarla. – user113716
Patrick, si Jerome intentaba calcular la identidad de antepasado del contexto, ** no hay absolutamente ningún punto ** en el uso de '$ (this) .closest ('# ancestor-1')' cuando '$ ('# ancestro-1 ') 'no solo sería suficiente sino también más rápido. A veces, es mejor leer las intenciones de una pregunta y dirigir la respuesta en consecuencia. –