Как удалить класс из всех элементов 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классе. .edgetoedgeсоответствует только одному ulтегу:

$(".edgetoedge li").removeClass("highlight");
мелламокб
источник
40

попробуйте: $(".highlight").removeClass("highlight");. Выбирая, $(".edgetoedge")вы запускаете только функции этого уровня.

сломанная кола
источник
Ваш ответ должен быть принят. Очень интересный трюк, ты спасешь мне день.
vietnguyen09
18

Это просто удаляет highlightкласс из всего, что имеет edgetoedgeкласс:

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

Я думаю, вы этого хотите:

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

.edgetoedge .highlightСелектор будет выбирать все , что ребенок что - то с edgetoedgeклассом и имеет highlightкласс.

mu слишком короткий
источник
2
+1 за возможность нацеливать предметы, не зная типа элемента.
Энди
8

Вы можете попробовать это:

 $(".edgetoedge").children().removeClass("highlight");
Оливер Сприн
источник
1

Лучше всего удалить класс в jquery из всех элементов, чтобы настроить таргетинг через тег элемента. например,

$("div").removeClass("highlight");
НАВНИТ ЧАНДАН
источник