Cómo eliminar la clase de todos los elementos jquery


82

Estoy cambiando la clase de un elemento con lo siguiente

  $("#"+data.id).addClass("highlight")

Dada la lista a continuación.

 <div id="menuItems"> 
 <ul id="contentLeft" class="edgetoedge"> 
 <li  class="sep" ">Shakes and Floats</li> 
 <li id="297"><a href="#" onClick="cart('297','add')"><small>$5.00</small><b>Vanilla</b>     </a></li> 
 <li id="298"><a href="#" onClick="cart('298','add')"><small>$5.00</small><b>Peanut Butter</b></a></li> 
 <li id="299"><a href="#" onClick="cart('299','add')"><small>$5.00</small><b>Combo</b></a></li> 
 <li id="300"><a href="#" onClick="cart('300','add')"><small>$5.00</small><b>Chocolate</b></a></li> 
 <li id="301"><a href="#" onClick="cart('301','add')"><small>$5.00</small><b>Strawberry</b></a></li> 
 <li id="303"><a href="#" onClick="cart('303','add')"><small>$5.00</small><b>Banana</b></a></li> 
 <li id="304"><a href="#" onClick="cart('304','add')"><small>$5.00</small><b>Root Beer Float</b></a></li> 
 <li id="305"><a href="#" onClick="cart('305','add')"><small>$5.00</small><b>Espresso</b></a></li> 
 </ul>
 </div> 

Supuse que podría eliminar la clase con esto ...

  $(".edgetoedge").removeClass("highlight");

Pero esto no funciona. ¿Cómo puedo eliminar la clase?

Respuestas:


158

Debe seleccionar las lietiquetas contenidas en la .edgetoedgeclase. .edgetoedgesolo coincide con una uletiqueta:

$(".edgetoedge li").removeClass("highlight");

38

Proveedores: $(".highlight").removeClass("highlight");. Al seleccionar $(".edgetoedge"), solo está ejecutando funciones en ese nivel.


Su respuesta debe ser aceptada. Un truco muy interesante, me salvas el día.
— vietnguyen09

18

Esto simplemente elimina la highlightclase de todo lo que tiene la edgetoedgeclase:

$(".edgetoedge").removeClass("highlight");

Creo que quieres esto:

$(".edgetoedge .highlight").removeClass("highlight");

El .edgetoedge .highlightselector elegirá todo lo que sea hijo de algo con la edgetoedgeclase y tenga la highlightclase.


2
+1 para la capacidad de apuntar a elementos sin conocer el tipo de elemento.
— Andy

7

Puedes probar esto:

 $(".edgetoedge").children().removeClass("highlight");


0

Lo mejor para eliminar una clase en jquery de todos los elementos es apuntar a través de la etiqueta del elemento. p.ej,

$("div").removeClass("highlight");
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.