すべての要素からクラスを削除する方法jquery


84

次のように要素のクラスを変更しています

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

以下のリストを考えてみましょう。

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

これでクラスを削除できると思いました...

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

しかし、これは機能しません。クラスを削除するにはどうすればよいですか?

回答:


159

クラスにli含まれるタグを選択する必要があります.edgetoedge.edgetoedge1つのulタグにのみ一致します:

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

40

試してみてください:$(".highlight").removeClass("highlight");。選択する$(".edgetoedge")と、そのレベルの機能のみが実行されます。


あなたの答えは受け入れられるべきです。非常に興味深いトリック、あなたは私の日を救います。
vietnguyen 0918年

18

これにより、highlightクラスを持つすべてのものからクラスが削除されますedgetoedge

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

私はあなたがこれが欲しいと思います:

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

.edgetoedge .highlightセレクタは、と何かの子であるすべてのものを選択しますedgetoedgeクラスと持っていhighlightたクラスを。


2
要素タイプを知らなくてもアイテムをターゲットにする機能の場合は+1。
アンディ



1

すべての要素からjqueryのクラスを削除する最善の方法は、要素タグを介してターゲットを設定することです。例えば、

$("div").removeClass("highlight");
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.