在克隆过程中,为每个输入更改多维数组的第一列索引

时间:2019-04-20 03:23:55

标签: javascript jquery

当我克隆该节时,如何使用尽可能少的代码来更改多维数组的第一列,我知道我可以单独进入并找到每个输入,但这似乎效率很低。因此,例如,如果我有

<div class="wrapper">
    <input type="text" name="height[0][]" />
    <input type="text" name="width[0][]" />
    <input type="text" name="depth[0][]" />
    <input type="text" name="weight[0][]" />
</div>

一旦克隆和编辑,克隆的输出应如下所示;

<div class="wrapper">
    <input type="text" name="height[1][]" />
    <input type="text" name="width[1][]" />
    <input type="text" name="depth[1][]" />
    <input type="text" name="weight[1][]" />
</div>

谢谢

1 个答案:

答案 0 :(得分:0)

使用mapreplace(有点儿麻烦):

var newElems = $(".wrapper").clone(true).find("input").map((index, item) => {
  item.name = item.name.replace(/\[(\d)\]/, `[${parseInt($(item).attr("name").match(/\w+\[(\d)\]/)[1]) + 1}]`);
  return item;
});

console.log([...newElems]);
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<div class="wrapper">
  <input type="text" name="height[0][]" />
  <input type="text" name="width[0][]" />
  <input type="text" name="depth[0][]" />
  <input type="text" name="weight[0][]" />
</div>