首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery -删除所有具有相似名称的类

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

Stack Overflow用户
提问于 2010-09-12 02:30:50
回答 4查看 7.5K关注 0票数 10

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

代码语言:javascript
复制
$('element').removeClass('class-1').removeClass('class-2').removeClass('class-3').removeClass('class-5') ...
to .removeClass('class-105')
:)

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-12 02:35:21

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

代码语言:javascript
复制
$('element').attr(
  'className',
  $('element').attr('className').replace(/\bclass-\d+\b/g, '')
);

编辑:

此后,attr方法发生了更改,它不再读取属性,因此您必须使用属性名称class而不是属性名称className

代码语言:javascript
复制
$('element').attr(
  'class',
  $('element').attr('class').replace(/\bclass-\d+\b/g, '')
);
票数 9
EN

Stack Overflow用户

发布于 2012-01-18 02:34:32

下面是我使用的一个小的jQuery插件:

代码语言:javascript
复制
(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);

您可以这样使用它:

代码语言:javascript
复制
$(...).removeClassWild('class-*');
票数 11
EN

Stack Overflow用户

发布于 2010-09-12 03:10:43

使用css选择器[type*=value]可以更好地实现这一点。

代码语言:javascript
复制
$(function() {
    var i = 0;
    while( ++i <= 105) {
        $('b').addClass('class-'+ i);
    }
  var clas = '';
  var arey =[]
    $('input[type=button]').click(function() {  
        clas = $('b').attr('class');
        arey = clas.match(/class-\d{1,3}/g);
        $.each(arey, function(i, e) {
            $('b').removeClass(e);      
        });
    });
}); 

编辑

演示:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3692142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档