2012-07-08 22 views
6

Tôi có một đối tượng divjQuery - loại bỏ một lớp học mà là trong một mảng

<div class="class1 classA classB class2"> content </div> 

và một số nút

<button id="numbers">clickme N </button> 

<button id="alphas">clickme A </button> 

Mã nên làm chức năng này:

<script> 
    var classesN = [class1, class2, class3]; 
    var classesAlpha = [classA, classB, classC]; 

    $('#alphas').click(function() { 
     $('div').removeClass(all classes that are in the classesAlpha array); 
    }); 
    $('#numbers').click(function() { 
     $('div').removeClass(all classes that are in the classesN array); 
    }) 
</script> 

Cảm ơn cho bất kỳ đề xuất nào và tôi hy vọng bạn thích câu hỏi :)

+2

Tại sao có khoảng cách giữa dấu ngoặc và số nhận dạng thẻ của bạn? Đã thử nghiệm trong IE, Firefox và Chrome. Tôi không biết những gì biên tập viên hoặc IDE bạn đang sử dụng, nhưng nó nhổ ra html không hợp lệ. – Daedalus

+0

Tôi có thể không định dạng mã đúng cách – thednp

+0

http://stackoverflow.com/questions/11279835/delete-all-classes-after-a-certain-class ?? ':)' tương tự, hmm –

Trả lời

8
var classesN = ["class1", "class2", "class3"]; 
var classesAlpha = ["classA", "classB", "classC"]; 

$('#alphas').click(function() { 
    var $div = $('div'); 
    $.each(classesAlpha, function(i, v){ 
     $div.removeClass(v); 
    }); 
}); 

DEMO

+0

Tôi cũng thích câu trả lời này, tôi không thể quyết định ngay bây giờ: | – thednp

+1

Vì vậy, ai sẽ chọn cái này là tốt nhất. Xin chúc mừng @undefined, bạn đã nhận được số điểm một lần nữa Mã số – thednp

+0

được xác nhận 100% yeeey – thednp

13

.removeClass([className]): classNameOne hoặc nhiều hơn các lớp được phân tách bằng dấu cách để được loại bỏ khỏi thuộc tính lớp của mỗi phần tử được so khớp.

Vì vậy, hãy tham gia tất cả các lớp bạn muốn xóa vào danh sách được phân cách bằng dấu cách.

var classesN = [class1, class2, class3]; 
var classesAlpha = [classA, classB, classC]; 

$('#alphas').click(function() { 
    $('div').removeClass(classesAlpha.join(' ')); 
}); 
$('#numbers').click(function() { 
    $('div').removeClass(classesN.join(' ')); 
}); 
+1

Mã ban đầu ngụ ý rằng các mảng phải là mảng của chuỗi, nhưng ngay cả trong mã ban đầu thì không. Nếu chúng là các biến đại diện cho chuỗi, điều này sẽ làm việc, nhưng tôi nghi ngờ câu hỏi ban đầu cũng nên có chúng như là mảng của chuỗi. –

+0

họ phải là ** cái gì đó **, tôi cảm thấy thoải mái với giả định rằng anh ta không nghĩ đến việc bao gồm các dấu ngoặc bởi vì thực sự không có nhiều lựa chọn thay thế hợp lý. Bất kỳ nguyên thủy nào khác có một reasonavle .toString(). Các đối tượng? của cái gì? – Sinetheta

+0

Điều này nghe có vẻ thú vị, sẽ kiểm tra nó ngay lập tức :) – thednp

1

Hoặc có thể không có mảng và tham gia function(). chỉ cần chỉ định các lớp học cho biến số

var classesN = "class1 class2 class3"; 
var classesAlpha = "classA classB classC"; 

$('#alphas').click(function() { 
    $('div').removeClass(classesAlpha); 
}); 
$('#numbers').click(function() { 
    $('div').removeClass(classesN); 
}); 
Các vấn đề liên quan