Cách xóa lớp khỏi tất cả các phần tử jquery


82

Tôi đang thay đổi lớp của một phần tử với phần tử sau

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

Đưa ra danh sách dưới đây.

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

Tôi cho rằng mình có thể xóa lớp bằng cái này ...

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

Nhưng điều này không hiệu quả. Làm cách nào để xóa lớp học?

Câu trả lời:


158

Bạn cần chọn các lithẻ có trong .edgetoedgelớp. .edgetoedgechỉ khớp với một ulthẻ:

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

38

thử: $(".highlight").removeClass("highlight");. Bằng cách chọn, $(".edgetoedge")bạn chỉ đang chạy các chức năng ở cấp độ đó.


Câu trả lời của bạn nên được chấp nhận. Một thủ thuật rất thú vị, bạn tiết kiệm ngày của tôi.
vietnguyen09

18

Điều này chỉ xóa highlightlớp khỏi mọi thứ có edgetoedgelớp:

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

Tôi nghĩ bạn muốn điều này:

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

Bộ .edgetoedge .highlightchọn sẽ chọn mọi thứ là con của một cái gì đó có edgetoedgelớp và có highlightlớp.


2
+1 cho khả năng nhắm mục tiêu các mục mà không cần biết loại phần tử.
Andy

7

Bạn có thể thử điều này:

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


0

Cách tốt nhất để xóa một lớp trong jquery khỏi tất cả các phần tử là nhắm mục tiêu qua thẻ phần tử. ví dụ,

$("div").removeClass("highlight");
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.