如何根据类名的某些字符从jQuery中删除一个类?

时间:2012-02-13 08:17:18

标签: jquery

我有类可以是这样的元素:

class="refType indent_00"
class="refType indent_01"
class="refType indent_02"
..
class="refType indent_10"

有没有一种简单的方法可以从这些中删除index_xx类?

由于

2 个答案:

答案 0 :(得分:6)

如果你可能发现index_xx类名的所有对象上都有refType类,那么你可以这样做:

$(".refType").each(function() {
    this.className = $.trim(this.className.replace(/(^|\s)indent_\d+($|\s)/, " "));
});

如果,他们并非都拥有refType课程,那么你可以这样做:

$("[class*='indent_']").each(function() {
    this.className = $.trim(this.className.replace(/(^|\s)indent_\d+($|\s)/, " "));
});​

或者,使用所有jQuery,您可以这样做:

$("[class*='indent_']").removeClass(function(i, cls) {
    var retVal = "";
    var matches = cls.match(/(^|\s)(indent_\d+)($|\s)/);
    if (matches) {
        retVal = matches[2];
    }
    return(retVal);
});

第一个可能更有效率。如果你可以将这个范围扩展到DOM的某个部分而不是整个DOM,那么这可能有助于提高性能。

第二个工作示例:http://jsfiddle.net/jfriend00/PkXag/

答案 1 :(得分:1)

使用jquery removeClass; e.g:

$('.refType').removeClass('indent_00');

另见this example