在<input />中更改为name属性

时间:2012-12-07 14:28:50

标签: javascript jquery

我想在<input>元素中更改名称属性,我在这里有几个名称string[0][],现在我想要点击链接后添加更改0并替换{{ 1}}代替所有1。 Jquery怎么样?

DEMO: http://jsfiddle.net/2hXk5/

我尽力但不适合我:

0

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望.attr()使用回调函数:

$('input[type="checkbox"]').attr('name',function(i,str) {
    return str.replace('0','1');
});

更新:这是一个完整版本,可以完成你真正想要的一切。它使用str.match(/\d+/)提取name属性中的FIRST数字字符串,将其转换为整数,然后使用str.replace将其替换为下一个整数。请注意,insertAfter部分已更新,因此仅在最后div.ch之后插入:

$(document).on('click change', 'a.adding', function(e) {
    e.preventDefault();
    $div = $(this).closest('.ch');
    $clone = $div.clone().insertAfter($div);
    $clone.find('input[type="checkbox"]').attr('name', function(i, str) {
        var int = parseInt(str.match(/\d+/)[0],10);
        return str.replace(int, (int+1));
    });
});​

http://jsfiddle.net/mblase75/3SGNw/