如何使用jQuery批量移除class?

比如有:

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

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

阅读 27.3k
7 个回答

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

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, ''); });

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

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

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

都看错题了吗。。哈哈。

因为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(' ');
    });
$('#testid').attr('class', '')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏