2013-07-15 28 views
20

Tôi có lớp này được gọi là .m-active được sử dụng nhiều lần trong suốt HTML của tôi. Về cơ bản những gì tôi muốn làm là loại bỏ tất cả các trường hợp của lớp đó khi người dùng nhấp vào một hình ảnh (mà không có lớp m-active) và thêm lớp m-active vào hình ảnh đó.Làm thế nào để loại bỏ tất cả các trường hợp của một lớp trong javascript/jquery?

Ví dụ trong một hàng Backgrid bạn có thể có một handler nhấp chuột như sau:

"click": function() { 
    this.$el.addClass('m-active'); 
} 

Nhưng bạn cũng muốn loại bỏ lớp từ bất kỳ hàng mà nó đã được bổ sung trước đó, vì vậy mà chỉ có một hàng tại một thời gian có lớp .m hoạt động

Có ai biết cách này có thể được thực hiện trong javascript/jquery không?

+1

removeClass() !!! –

+0

Có, tôi đã thử removeClass nhưng tôi không thể làm cho nó làm những gì tôi muốn. – jdc987

+0

có thể trùng lặp của [.removeClass từ tất cả các phần tử (so với một phần tử được xác định duy nhất)] (http://stackoverflow.com/questions/6899888/removeclass-from-all-elements-versus-a-single-defined-element) – Mottie

Trả lời

42

Với jQuery:

$('.m-active').removeClass('m-active'); 

Giải thích:

  • Calling $('.m-active') chọn tất cả các yếu tố từ các tài liệu có chứa lớp m-active
  • Dù bạn chuỗi sau selector này được áp dụng cho tất cả các thành phần được chọn
  • Chaining ca ll với removeClass('m-active') loại bỏ lớp m-active từ tất cả các thành phần được chọn

Đối với tài liệu về phương pháp cụ thể này, xem: http://api.jquery.com/removeClass/

Bắt nắm bắt toàn bộ điều selector với jQuery đang thách thức lúc đầu, nhưng một khi bạn nhận được nó, bạn thấy mọi thứ trong ánh sáng rất khác. Tôi khuyến khích bạn xem xét một số hướng dẫn jQuery tốt. Cá nhân tôi khuyên kiểm tra ra theo dõi jQuery Codeacademy của: http://www.codecademy.com/tracks/jquery

+0

Điều này sẽ loại bỏ tất cả các trường hợp m-active mà tôi có trong toàn bộ tệp HTML của tôi? – jdc987

+0

Có trong thực tế nó. Xem phần giải thích tôi đã thêm! – jsalonen

+0

Tuyệt vời. Đây chỉ là những gì tôi cần và không thể tìm thấy khi tìm kiếm. Cảm ơn bạn đã giải thích nó (Tôi mới để jquery/javascript/lập trình nói chung vì vậy điều này đã giúp tôi)! – jdc987

1

Jquery-:

$("class").removeClass("your class"); 

javascript-: Đặt tên lớp không có gì khi bạn muốn loại bỏ lớp trong javascript !!!

document.getElementById("your id").className = ""; 

hoặc

element.classList.remove("class name"); 
4

tất cả các câu trả lời chỉ để loại bỏ các lớp từ phần tử DOM. Nhưng nếu bạn đang yêu cầu để loại bỏ các yếu tố bản thân bạn có thể sử dụng .remove() phương pháp jquery

$('.m-active').remove(); 

JQuery Remove Docs

0

Cụ thể giải quyết các khối mã thêm để tăng cường chất lượng của các câu hỏi, và vay từ jsalonen:

"click": function() { 
    $('.m-active').removeClass('m-active'); 
    this.$el.addClass('m-active'); 
} 
Các vấn đề liên quan