So entfernen Sie Klasse aus allen Elementen jquery

82

Ich ändere die Klasse eines Elements wie folgt

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

Angesichts der Liste unten.

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

Ich nahm an, ich könnte die Klasse damit entfernen ...

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

Das funktioniert aber nicht. Wie kann ich die Klasse entfernen?

maxum
quelle

Antworten:

157

Sie müssen die liin der .edgetoedgeKlasse enthaltenen Tags auswählen . .edgetoedgestimmt nur mit dem einen ulTag überein :

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

versuchen Sie : $(".highlight").removeClass("highlight");. Durch Auswahl wählen $(".edgetoedge")Sie nur Funktionen auf dieser Ebene aus.

verschrottete Cola
quelle
Ihre Antwort sollte akzeptiert werden. Ein sehr interessanter Trick, du rettest meinen Tag.
vietnguyen09
18

Dies entfernt nur die highlightKlasse von allem, was die edgetoedgeKlasse hat:

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

Ich denke du willst das:

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

Der .edgetoedge .highlightSelektor wählt alles aus, was ein Kind von etwas mit der edgetoedgeKlasse ist und die highlightKlasse hat.

mu ist zu kurz
quelle
2
+1 für die Fähigkeit, Gegenstände anzuvisieren, ohne den Elementtyp zu kennen.
Andy
7

Sie könnten dies versuchen:

 $(".edgetoedge").children().removeClass("highlight");
Oliver Spryn
quelle
3
$(".edgetoedge>li").removeClass("highlight");
cmplieger
quelle
0

Das Beste, um eine Klasse in jquery aus allen Elementen zu entfernen, ist das Targeting über das Element-Tag. z.B,

$("div").removeClass("highlight");
NAVNEET CHANDAN
quelle