2009-03-31 16 views
26

Soy un tipo acostumbrado a la forma en que los mootools encadenan los selectores, y parece que no puedo encontrar en ningún lado cómo hacer lo mismo en jQuery. Supongamos que tengo un elemento de selección en la variable selectObj. Lo que necesito es obtener la última opción en esa selección. En mootools que yo hubiera hecho algo como:Encadenando selectores en jQuery

var option = $(selectObj).getElement('nth-child(last)') 

¿Puedo hacer algo similar, o lo que es la manera de conseguir que el pasado option en jQuery?

PS. Sé sobre el parent > child selector, pero realmente no puedo usarlo porque no sé qué selector se ha usado para obtener el select. Solo tengo el elemento resultante.

Respuesta

24
var option = $(selectObj).children(":last"); 

devolverá el último hijo de cualquier elemento

+3

De hecho, la mayoría de las operaciones transversales en jQuery (hermanos, buscar, padres, hijos, etc.) permiten especificar una expresión de filtro opcional. – stusmith

+0

Esto es lo que he estado buscando. Solo busqué en la parte de "selectores" del documento y no en el de desplazamiento. No obstante, no sé por qué. Gracias. – andi

0

jQuery tiene la :last Selector

$("tr:last").stuff() 

Hará cosas a la última fila de una tabla.

51
$(selectObj).find(':last') 

Puede usar find para realizar otra consulta dentro de la consulta actual.

En general, puede consultar las páginas Selectors y Traversal en documentos jQuery cuando intenta averiguar cómo seleccionar algo.

+0

Solo busqué en la parte de "selectores" del documento y no en el de "desplazamiento". Creo que la solución de cobbal se ajusta mejor. – andi

+1

Esta es la solución más general al problema, y ​​la que estaba buscando cuando busqué y encontré esta pregunta. ¡Gracias! – Pete

+0

Solo un rápido aparte, '.find' es uno de los selectores más lentos: http://jsperf.com/jquery-context-find-class. – dooburt

2

También puede usar .last() para este fin.