jQuery - 删除所有具有相似名称的类

9 jquery jquery-selectors

有没有更好的方法来做到这一点?

$('element').removeClass('class-1').removeClass('class-2').removeClass('class-3').removeClass('class-5') ...
to .removeClass('class-105')
:)
Run Code Online (Sandbox Code Playgroud)

我想删除所有class-(n)类.

Thi*_*ter 9

这是我用于此目的的一个小jQuery插件:

(function($) {
    $.fn.removeClassWild = function(mask) {
        return this.removeClass(function(index, cls) {
            var re = mask.replace(/\*/g, '\\S+');
            return (cls.match(new RegExp('\\b' + re + '', 'g')) || []).join(' ');
        });
    };
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

你这样使用它:

$(...).removeClassWild('class-*');
Run Code Online (Sandbox Code Playgroud)


Guf*_*ffa 8

获取元素的类,将其作为字符串处理,然后将其放回:

$('element').attr(
  'className',
  $('element').attr('className').replace(/\bclass-\d+\b/g, '')
);
Run Code Online (Sandbox Code Playgroud)

编辑:

attr方法已更改,并且不再读取属性,因此您必须使用属性名称class而不是属性名称className:

$('element').attr(
  'class',
  $('element').attr('class').replace(/\bclass-\d+\b/g, '')
);
Run Code Online (Sandbox Code Playgroud)

  • 选择器将关闭每个元素,我会这样写:`$('element').attr('className',function(i,c){return c.replace(/\bclass-\d +\b/g,'');});` (5认同)