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?

maxum
fuente

Respuestas:

158

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

$(".edgetoedge li").removeClass("highlight");
mellamokb
fuente
38

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

cola de pescado
fuente
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.

mu es demasiado corto
fuente
2
+1 para la capacidad de apuntar a elementos sin conocer el tipo de elemento.
Andy
7

Puedes probar esto:

 $(".edgetoedge").children().removeClass("highlight");
Oliver Spryn
fuente
3
$(".edgetoedge>li").removeClass("highlight");
cmplieger
fuente
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");
NAVNEET CHANDAN
fuente