Chọn nhiều lớp với jQuery


222

Tôi đã có một cái nhìn tốt và dường như không thể tìm ra cách chọn tất cả các phần tử khớp với các lớp nhất định trong một câu lệnh chọn jQuery như sau:

$('.myClass', '.myOtherClass').removeClass('theclass');

Bất kỳ ý tưởng về làm thế nào để đạt được điều này? Lựa chọn duy nhất khác là làm

$('.myClass').removeClass('theclass');
$('.myOtherClass').removeClass('theclass');

Nhưng tôi đang làm điều này với khá nhiều lớp, vì vậy nó đòi hỏi nhiều mã.

Câu trả lời:


402

Điều này sẽ làm việc:

$('.myClass, .myOtherClass').removeClass('theclass');

Bạn phải thêm nhiều bộ chọn tất cả trong đối số đầu tiên vào $ (), nếu không, bạn đang tạo cho jQuery một bối cảnh để tìm kiếm, đó không phải là điều bạn muốn.

Nó giống như bạn làm trong CSS.


3
Điều gì xảy ra nếu tôi chỉ khớp nó khi mỗi phần tử có tất cả các lớp được chỉ định?
IsmailS

12
Được rồi, tôi đã nhận được một stackoverflow.com/q/1041344/148271 này . về cơ bản tôi sẽ phải tham gia tất cả các công cụ chọn cho giao lộ. Thích$(".myClass.myOtherClass")
IsmailS

Thông tin thêm về nhóm CSS: W3C "Nhóm" .
skrounge

@wal: Dấu phẩy đó cũng cần thiết trong CSS khi trỏ đến cả hai lớp. Không có dấu phẩy, nó sẽ tham chiếu đến .myOtherClassmột nơi nào đó bên trong .myClass.
đam mê

câu trả lời này không trả lời câu hỏi, theo cách này bạn đang thực hiện HOẶC !!!! không VÀ !!
Mahmoud Khateeb

26

Bạn đã thử điều này?

$('.myClass, .myOtherClass').removeClass('theclass');

25

tôi sử dụng $('.myClass.myOtherClass').removeClass('theclass');


34
Đây là nếu một phần tử HTML có nhiều lớp và bạn muốn loại bỏ lớp đó chỉ với tất cả các lớp đó. Các ví dụ khác sẽ xóa lớp khỏi bất kỳ phần tử nào với bất kỳ lớp nào được phân tách bằng dấu phẩy. Ví dụ của bạn sẽ chỉ hoạt động nếu phần tử HTML của tôi có cả hai , chẳng hạn như<div class="myClass myOtherClass theclass">
Kezzer

0
// Due to this Code ): Syntax problem.    
$('.myClass', '.myOtherClass').removeClass('theclass'); 

Theo tài liệu của jQuery: https://api.jquery.com/multipl-selector/

Khi có thể chọn nhiều lớp theo cách này:

jQuery(“selector1, selector2, selectorN”) // double Commas. // IS valid.
jQuery('selector1, selector2, selectorN') // single Commas. // Is valid.

bằng cách đặt tất cả các bộ chọn trong một dấu phẩy '...' hoặc dấu phẩy kép, "..."

Vì vậy, trong trường hợp của bạn, cách chính xác để gọi nhiều lớp là:

$('.myClass', '.myOtherClass').removeClass('theclass'); // your Code // Invalid.
$('.myClass , .myOtherClass').removeClass('theclass');  // Correct Code // Is valid.
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.