En mi experiencia javascript, encontré que es una tarea muy común "buscar el antecesor más cercano de un elemento con alguna condición (nombre de etiqueta, clase, ...)". ¿Puede el método de jquery de parents() hacer el trabajo? El orden de los elementos devueltos de los padres() es predecible? ¿Es de arriba a abajo o de abajo hacia arriba? Por el momento utilizo esta función de utilidad:nodo ancestro más cercano en jQuery
function ancestor(elem, selector) {
var $elem = $(elem).parent();
while($elem.size() > 0) {
if($elem.is(selector))
return $elem;
else
$elem = $elem.parent();
}
return null;
}
Puede alguien decirme si hay una forma inteligente de hacer el trabajo?
cuidado, John Resig planea cambie .parents() para devolver elementos en orden de origen. Vea este error presentado por John mismo después del hilo del foro que gira en torno al orden de los elementos dentro de las colecciones devueltas: http://bugs.jquery.com/ticket/5994 –
Afortunadamente, el equipo jQuery desde entonces ha cerrado este ticket con 'wontfix'. Entonces .parents() debería considerarse estable nuevamente. –