Jak usunąć klasę ze wszystkich elementów jquery

84

Zmieniam klasę elementu w następujący sposób

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

Biorąc pod uwagę poniższą listę.

 <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> 

Zakładałem, że mogę usunąć klasę za pomocą tego ...

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

Ale to nie działa. Jak mogę usunąć zajęcia?

maxum
źródło

Odpowiedzi:

159

Musisz wybrać litagi zawarte w .edgetoedgeklasie. .edgetoedgepasuje tylko do jednego ultagu:

$(".edgetoedge li").removeClass("highlight");
mellamokb
źródło
40

spróbuj: $(".highlight").removeClass("highlight");. Wybierając $(".edgetoedge"), uruchamiasz funkcje tylko na tym poziomie.

złomowana cola
źródło
Twoja odpowiedź powinna zostać zaakceptowana. Bardzo ciekawa sztuczka, ratujesz mi dzień.
vietnguyen09
18

To po prostu usuwa highlightklasę ze wszystkiego, co ma edgetoedgeklasę:

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

Myślę, że chcesz tego:

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

.edgetoedge .highlightSelektor wybiorą wszystko, co dziecko czegoś z edgetoedgeklasą i ma highlightklasę.

mu jest za krótkie
źródło
2
+1 za możliwość namierzania przedmiotów bez znajomości typu elementu.
Andy
8

Możesz spróbować tego:

 $(".edgetoedge").children().removeClass("highlight");
Oliver Spryn
źródło
3
$(".edgetoedge>li").removeClass("highlight");
cmplieger
źródło
1

Najlepszym sposobem usunięcia klasy w jquery ze wszystkich elementów jest wybranie celu za pomocą znacznika elementu. na przykład,

$("div").removeClass("highlight");
NAVNEET CHANDAN
źródło