2010-01-09 16 views
56

Dado el siguiente código HTML:Eliminar una clase para todos los elementos secundarios

<div id="table-filters"> 
    <ul> 
     <li class="active">blah</li> 
     <li>blah</li> 
     <li>blah</li> 
     <li>blah</li> 
    </ul> 
</div> 

usando la Tabla filtros como el selector de jQuery, ¿cómo puedo limpiar los elementos que tienen CLASS=ACTIVE, no importa lo que LI que pasa a ser el ?

gracias

Respuesta

99

esto debería funcionar:

$("#table-filters>ul>li.active").removeClass("active"); 
//Find all `li`s with class `active`, children of `ul`s, children of `table-filters` 
+1

Gracias que hizo el truco – AnApprentice

+0

la solución anterior no funciona en Chrome. entonces, acabo de cambiarlo a $ ("# table-filters> li.active"). removeClass ("active") ;. Tq. – chandoo

25

También puede hacer como esto:

$("#table-filters li").parent().find('li').removeClass("active"); 
+1

Eso es posible, pero es mucho más difícil de procesar para jQuery, por lo que si está contando con una respuesta rápida, debe usar el método anterior. Además, ¿por qué seleccionarías todos los 'li', luego conseguirías que el padre encontrara el 'li' y luego eliminaras la clase activa? Poco improductivo .. –

+0

Como mencioné anteriormente, esta es otra forma de hacerlo. – insomiac

+0

Esto es útil cuando el selector en sí es demasiado ancho y desea limitarlo a los elementos secundarios de un único elemento "primario". – Jason

Cuestiones relacionadas