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?
Esto simplemente elimina la
highlight
clase de todo lo que tiene laedgetoedge
clase:$(".edgetoedge").removeClass("highlight");
Creo que quieres esto:
$(".edgetoedge .highlight").removeClass("highlight");
El
.edgetoedge .highlight
selector elegirá todo lo que sea hijo de algo con laedgetoedge
clase y tenga lahighlight
clase.fuente
Puedes probar esto:
$(".edgetoedge").children().removeClass("highlight");
fuente
$(".edgetoedge>li").removeClass("highlight");
fuente
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");
fuente