如何从所有元素 jquery 中删除类

我用以下方法更改元素的类

  $("#"+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");

但是这不起作用,我怎样才能删除这个类呢?

207833 次浏览

try: $(".highlight").removeClass("highlight");. By selecting $(".edgetoedge") you are only running functions at that level.

You could try this:

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

You need to select the li tags contained within the .edgetoedge class. .edgetoedge only matches the one ul tag:

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

This just removes the highlight class from everything that has the edgetoedge class:

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

I think you want this:

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

The .edgetoedge .highlight selector will choose everything that is a child of something with the edgetoedge class and has the highlight class.

The best to remove a class in jquery from all the elements is to target via element tag. e.g.,

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