我的网站上有一个区域,我允许用户更新他们的个人资料信息。
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="">
答案 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
});
});
});