首页 > 如何使用jQuery批量移除class?

如何使用jQuery批量移除class?

比如有:

<a class="class-1 class-2 class-3 mod" href="XXX" id="testid">test</a>

如何一次性移除"class"开头所有的类样式?


  1. $('#testid').removeClass().addClass('mod');
  2. $('#testid').removeClass(function (i, v) {return v.replace('mod', '');});

都看错题了吗。。哈哈。


removeClass('class-1 class-2 class-3 mod')


$("a").attr("class", "") 直接改变属性试试


可以正则匹配一下,替换为空。

var classStr = $('a').attr('class').replace(/class-\d+ /g, '');
$('a').attr('class', classStr);

感谢 @KevinYue 提供更通用的版本:

$('a').attr('class', function (i, cls) { return cls.replace(/class-\d+ /g, ''); });

$('#testid').attr('class', '')

http://stackoverflow.com/questions/1227286/get-class-list-for-element-with-jquery


因为jQuery的removeClass可以callback,所以我想到的是这样,期待高手有更好的方案!

javascript$('a').removeClass(function(index,className){
        var arr = className.split(/\s+/);
        for (var i = 0; i < arr.length; i++) {
            if(arr[i].indexOf('class-') === -1){
                arr.splice(i,1);
                i--;
            }
        };
        return arr.join(' ');
    });
【热门文章】
【热门文章】