jQuery - 删除数组中的类

the*_*dnp 6 arrays jquery removeclass

我有一个div对象

<div class="class1 classA classB class2"> content </div>
Run Code Online (Sandbox Code Playgroud)

和一些按钮

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

<button id="alphas">clickme A </button>
Run Code Online (Sandbox Code Playgroud)

代码应该执行此功能:

<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>
Run Code Online (Sandbox Code Playgroud)

感谢您的任何建议,我希望您喜欢这个问题:)

Sin*_*eta 13

.removeClass([className]):className 要从每个匹配元素的class属性中删除的一个或多个空格分隔的类.

因此,将要删除的所有类加入到空格分隔列表中.

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

$('#alphas').click(function() {
   $('div').removeClass(classesAlpha.join(' '));
});
$('#numbers').click(function() {
   $('div').removeClass(classesN.join(' '));
});
Run Code Online (Sandbox Code Playgroud)


und*_*ned 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);
    });
});
Run Code Online (Sandbox Code Playgroud)

DEMO

  • 这是一半的答案。我不确定迭代如何不必要地使代码“更干净”。 (2认同)