2012-09-26 27 views
12
<ul id="attached_deals_tab" class="nav nav-tabs"> 
    <li class="active"> 
    <a data-toggle="tab" href="#Test1">Test1</a> 
    </li> 
    <li class=""> 
    <a data-toggle="tab" href="#Test2">Test2</a> 
    </li> 
</ul> 

Con un jQuery como éste, podría decir conseguirme todos los elementos de la lista:¿Cómo seleccionar un li con una clase específica?

$('#attached_deals_tab li'); 

Pero, ¿cómo puedo decir mostrar sólo la li que tiene class="active"? En una línea por favor.

sé cómo negar que:

$('#attached_deals_tab li:not(.active)'); 

Pero no al revés ...

+3

Esta es una pregunta válida, que no pude descifrar. No hay ninguna razón para rechazar esto. Sería como decir que nadie debería hacer preguntas y hacer tutoriales en su lugar. – Houman

+4

En SO, los novatos son bienvenidos, creo que no deberíamos idealmente votar abajo debido a la inexperiencia de la persona que hace la pregunta. En cambio, debemos promover el aprendizaje. – techfoobar

+0

@techfoobar Debemos promover el aprendizaje, sí. Eso es lo que estoy haciendo. Los principiantes son bienvenidos, he ayudado a muchos de ellos, pero deberían mostrar un poco de esfuerzo. No creo "¿Cómo puedo configurar algo en negrita en CSS?" tipo de preguntas son bienvenidas – kapa

Respuesta

17
$('#attached_deals_tab li.active'); 
+0

Para mayor eficiencia, también puede usar $ ('# attached_deals_tab'). Find ('li.active'); – chteuchteu

4

Esto debería hacerlo, la sintaxis es exactamente igual que en el CSS:

$('#attached_deals_tab li.active'); 
0

simple, hacer

$('#attached_deals_tab li.active').(...) 
+0

Esto tiene el potencial de seleccionar más que solo elementos li – jholloman

+0

Bien, entonces puedo hacerlo 'li.active'. – SexyBeast

1

Se podía utilizar la clase una vez que el ul ID se ha especificado:

$("#attached_deals_tab .active"); 

A menos que tenga algo más que li s allí y que algo se está aplicando también la clase active, lo que sería extraño .

0

debería utilizar el selector de hijo a preparar su código para posibles futuras listas anidadas:

$('#attached_deals_tab > .active') 

Se seleccionarán solamente los hijos directos. De acuerdo con la especificación, un ul solo puede tener elementos li como secundarios, por lo que cuando se usa el selector secundario, .active debería ser suficiente, no es necesario especificar li.active.

Por listas anidadas, me refiero a algo como esto:

<ul id="attached_deals_tab"> 
    <li class="active"></li> 
    <li></li> 
    <li> 
     <ul> 
      <li class="active"></li> 
      <li></li> 
     </ul> 
    </li> 
</ul> 

la lectura de los documentation on jQuery Selectors también ayudará mucho.

+0

¿Podría el infractor explicar sus razones (aparte de ser tan dolido)? Siempre estoy feliz de mejorar mis respuestas. – kapa

Cuestiones relacionadas