3

jQueryについての質問です。

のように見えるすべてのクラスを見つける最良の方法は何ですか?そのようなすべてのクラスを に変更するページ上の数字 (任意の整数) はどこにありますsuperclass-XXXXXか?XXXXXsuperclass-XXXXX-finished

たとえば、ページにsuperclass-12345とクラスがある場合、それらは と になります。superclass-34superclass-12345-finishedsuperclass-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;
}));

これは、単一の要素にそのようなクラスが多数ある場合でも、 toのすべての出現を置き換えます。super-<some digits>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

要素に次のクラスが 1 つだけあると仮定しますsuperclass-*

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

次のように、スーパークラスで始まるすべてを検索します。

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

次に、スーパークラスで始まるすべてのクラスを新しいクラス名に変更します。

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