Pregunta

Tengo un selector, "td > a.leftmenuitem:last, div > a.leftmenuitem:last"y me gustaría simplificar un poco.He probado "* > a.leftmenuitem:last", "td, div > a.leftmenuitem:last", y "(td, div) > a.leftmenuitem:last"ninguno de los cuales funcionan de la forma en el primer selector hace.Es este tipo de cosas no es posible en el selector de sintaxis sin hacer un aparte selector para cada uno de ellos?

¿Fue útil?

Solución

No puedes simplificar:

td > a.leftmenuitem:last, div > a.leftmenuitem:last

sin que haya algo en común para que pueda seleccionar todos los elementos td y div relevantes con una sola expresión. Por ejemplo, si ambos tuvieran clase bla, podrías hacer:

.blah > a.leftmenuitem:last

Pero no use este tipo de expresión si puede evitarlo. Los selectores de clase son lentos (en comparación con los identificadores de ID y etiqueta).

¿Hay algo mal con solo?

a.leftmenuitem:last

?

Por cierto, ¿estás seguro de que :last es la opción correcta? Mucha gente lo usa por error, confundiéndolo con :last-child. <=> solo coincidirá con un elemento, el último elemento coincidente encontrado en la página.

Otros consejos

Lo que es más grande, a veces es más rápido. Cuando usa * en lugar de td , su consulta es mucho más lenta.

No creo que puedas simplificarlo. En su lugar, optaría por dar los enlaces que le interesan en una clase única, para que pueda simplemente hacer "a.<my-unique-class>:last". De esta forma, jquery simplemente puede escanear todas las etiquetas <a> coincidentes sin preocuparse de que su padre sea un elemento <td>.

Su selector es lo suficientemente simple. Si desea simplificarlo, puede hacer algo como:

$('a.leftmenuitem:last').parent().doWhateverYouWereGoingToDo();

Dudo que esto resulte en tiempos de ejecución más rápidos, sin embargo.

Tal vez solo estoy confundido, pero si

* > a.leftmenuitem:last

funcionaría para usted, entonces ¿por qué no ir con

?
a.leftmenuitem:last

en su lugar?

El selector de que estás usando

Parent > Child 

partido de todos los elementos secundarios especificado por Child de los elementos especificados por Parent.A menos que usted está utilizando <a> elementos en cualquier lugar de la página que no son hijos de <div> y <td> elementos, ¿por qué no usar simplemente

$('a.leftmenuitem:last')

Me estoy perdiendo algo?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top