3

问题是关于 jQuery 的。

找到所有看起来像的类的最佳方法是什么,页面上的数字(任何整数)在superclass-XXXXX哪里XXXXX改变每个这样的类superclass-XXXXX-finished

例如,如果页面上有superclass-12345superclass-34类,则它们变为superclass-12345-finishedand superclass-34-finished

4

3 回答 3

2

这有效:

function f() {
    $("[class]").each(function() {
        this.className = this.className.replace(/(super-\d+)(-finished)?/, function(a, b, c) {
            if (c == "") {
                return a + "-finished";
            }
            return a;
        });
    });
}


f();
f();
f();

console.log($("[class]").map(function() {
    return this.className;
}));

这将替换每次出现的super-<some digits>to super-<same digits>-finished,即使您在单个元素上有许多这样的类。

输入:

<div class="super-11"></div>
<div class="super-not-11"></div>
<div class="yes-super-111"></div>

输出:

<div class="super-11-finished"></div>
<div class="super-not-11"></div>
<div class="yes-super-111-finished"></div>

http://jsfiddle.net/9RFn4/1

编辑:更新以过滤掉以-finished.

于 2012-11-27T11:18:13.260 回答
1

找到所有以超类开头的,如下所示:

$('*[class^="superclass"]')

然后将所有以超类开头的类更改为新的类名:

$('*[class^="superclass"]').attr('class', 'newClass');
于 2012-11-27T11:12:03.347 回答
1

假设您的元素只有一个类superclass-*

$('*[class^="superclass"]').prop('class', $(this).prop('class') + '-finished');
于 2012-11-27T11:17:07.677 回答