问题是关于 jQuery 的。
找到所有看起来像的类的最佳方法是什么,页面上的数字(任何整数)在superclass-XXXXX
哪里XXXXX
改变每个这样的类superclass-XXXXX-finished
?
例如,如果页面上有superclass-12345
和superclass-34
类,则它们变为superclass-12345-finished
and superclass-34-finished
。
问题是关于 jQuery 的。
找到所有看起来像的类的最佳方法是什么,页面上的数字(任何整数)在superclass-XXXXX
哪里XXXXX
改变每个这样的类superclass-XXXXX-finished
?
例如,如果页面上有superclass-12345
和superclass-34
类,则它们变为superclass-12345-finished
and superclass-34-finished
。
这有效:
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>
编辑:更新以过滤掉以-finished
.
找到所有以超类开头的,如下所示:
$('*[class^="superclass"]')
然后将所有以超类开头的类更改为新的类名:
$('*[class^="superclass"]').attr('class', 'newClass');
假设您的元素只有一个类superclass-*
:
$('*[class^="superclass"]').prop('class', $(this).prop('class') + '-finished');