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?

Antworten:


157

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

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

38

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


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.


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");


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");
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.