如何增加输入数组的值?

时间:2015-11-29 23:30:07

标签: jquery

我的网站上有一个区域,我允许用户更新他们的个人资料信息。

HTML

<div class="my-class">
    <input type="text" name="fields[myFieldHandle][1][fields][firstName]" value="">
    <button type="button" id="add">Add Another</button>
</div>

jquery的

$('#add').click(function (event) {
    $('.my-class').clone().insertAfter('div.my-class');
});

一切都很好,我能够克隆文本输入。但是,我需要能够将[1]值增加1。我可以尝试匹配字符串,但我觉得这是假设相当多。有没有更有效的克隆方法:

<input type="text" name="fields[myFieldHandle][1][fields][firstName]" value="">

到此:

<input type="text" name="fields[myFieldHandle][2][fields][firstName]" value="">

jsFiddle

1 个答案:

答案 0 :(得分:1)

不是克隆第一个 div,而是克隆最后一个,以便获得最后一个input

然后您可以按如下方式递增其数字:

$('#add').click(function (event) {
  $('.my-class:last')
    .clone()
    .insertAfter('div.my-class:last')
    .find('input')                                       //get the input
    .attr('name', function(_, currentValue) {            //get its current value
      return currentValue.replace(/\d/, function(num) {  //replace the numeric part
        return +num + 1;                                 //with its value + 1
      });
    });
});

Fiddle