我正在尝试编写一行jquery,它找到一个以“a \ d”(字母a和数字)开头的类的输入,并用另一个数字替换该数字。
这是我试过的,有没有人注意到为什么这不起作用?
$('form').find('input[class^="a\d"]').replace(/a\d+/,'a22');
请注意:这是许多中的一行,我已经提取了这一行,因为它是我遇到麻烦的地方。
答案 0 :(得分:10)
你需要更多这样做:
$('form').find('input[class^="a"]').attr('class', function(i,cls) {
if( /a\d/.test( cls ) ) {
return cls.replace(/a\d+/,'a22');
}
});
使用.attr()
设置class
(或任何属性)时,可以向其传递一个包含2个参数的函数。 i
是迭代中的当前索引。 cls
是class
的当前值。
return
值将用于更新class
。如果没有返回任何内容,则不会有任何更改。
答案 1 :(得分:0)
试试这个
var regExp = /(a\d+)(.*)?/;
$('form').find('input[class^="a"]').each(
function()
{
var el = this;
var className = el.replace(regExp, "a22$2");
el.className = className;
}
);