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

Jes*_*ica 2 jquery

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

class="refType indent_00"
class="refType indent_01"
class="refType indent_02"
..
class="refType indent_10"
Run Code Online (Sandbox Code Playgroud)

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

谢谢

jfr*_*d00 6

如果您可能找到的所有对象index_xx上都有refType类,那么您可以这样做:

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

如果,他们并非都有refType班级,那么你可以这样做:

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

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

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

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

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