Javascript 在

Javascript 在,javascript,jquery,Javascript,Jquery,我想在元素中更改名称属性,我在这里有几个名称字符串[0][],现在我想在单击链接后添加更改‍‍0,并将1替换为所有0。Jquery做得怎么样 演示: 我试着做,但不为我工作: <div class="ch"> <p> <input type="checkbox" name="cDA[0][]"> <input type="checkbox" name="cDA[0][]"> <input

我想在元素中更改名称属性,我在这里有几个名称字符串[0][],现在我想在单击链接后添加更改‍‍0,并将1替换为所有0。Jquery做得怎么样

演示:

我试着做,但不为我工作:

<div class="ch">
    <p>
        <input type="checkbox" name="cDA[0][]">
        <input type="checkbox" name="cDA[0][]">
        <input type="checkbox" name="cDA[0][]">
        <input type="checkbox" name="cDA[0][]">
    </p>
    <p>
        <input type="checkbox" name="cFE[0][]">
        <input type="checkbox" name="cFE[0][]">
        <input type="checkbox" name="cFE[0][]">
        <input type="checkbox" name="cFE[0][]">
    </p>
    <p>
        <input type="checkbox" name="cYG[0][]">
        <input type="checkbox" name="cYG[0][]">
        <input type="checkbox" name="cYG[0][]">
        <input type="checkbox" name="cYG[0][]">
    </p>
    <a href="" class="adding">Add</a>
</div>
​


$('a.adding').live('click change', function (e) {
    e.preventDefault();
    $clone = $(this).closest('.ch').clone().insertAfter('.ch');
    $clone.find('input[type="checkbox"]:contains("0")').prop('1');
})​

如果我理解正确,您希望与回调函数一起使用:

$('input[type="checkbox"]').attr('name',function(i,str) {
    return str.replace('0','1');
});
更新:这里有一个完整的版本,它可以做任何你想做的事情。它使用str.match/\d+/提取name属性中的第一个数字字符串,将其转换为整数,然后使用str.replace将其替换为下一个整数。注意:insertAfter零件已更新,因此它仅在最后一个div.ch之后插入:


更新。检查小提琴。我不太清楚你想要的结果是什么。0在这里是动态的,它只是一个例子。@TaylorGomez,你需要提前告诉人们这一点!第一个获取了它,然后更改了。0将替换行更改为:return str.replace/\d+/,functionx{return parseIntx,10+1};
$(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));
    });
});​