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.