我试图将这两个答案中的信息拼凑起来,但似乎都没有以我可以推断并为我的情况工作的方式来解决这个问题.所以如果这看似重复,请不要惩罚我;我认为不是. Increment multidimensional array
Increment multidimensional array when form fields are cloned
Copy table row and increment all name attributes
<tr> <td><input type="text" name="pricing['prices'][0]['label']" value="" /></td> <td><input type="text" name="pricing['prices'][0]['price']" value="" /></td> <td><input type="text" name="pricing['prices'][0]['expires']" value="" /></td> <td><input type="text" name="pricing['prices'][0]['bulk-price']" value="" /></td> <td><input type="text" name="pricing['prices'][0]['bulk-qty']" value="" /></td> </tr>
我正在尝试克隆,使用此按钮:
<input type="button" id="newRowButton" value="Add Another Price" />
脚本(到目前为止克隆工作,但它不会将“0”更改为“1”.我显然错过了一些我无法通过拼凑其他两个答案中的示例来解决的问题)
$("#newRowButton").live('click',function(e) { e.preventDefault(); $("table.tablearray tr:last") .clone() .find(':input') .each(function(){ this.name = this.name.replace(/\[(\d+)\]$/, function(str,p1){ return '[' + (parseInt(p1,10)+1) + ']'; }); }) .end() .appendTo("table") });
任何帮助,将不胜感激.理想情况下,我也想添加一个“删除行”按钮.
从正则表达式中取出$符号,这样就像这样:$("#newRowButton").live('click',function(e) { e.preventDefault(); $("table.tablearray tr:last") .clone() .find(':input') .each(function(){ this.name = this.name.replace(/\[(\d+)\]/, function(str,p1){ return '[' + (parseInt(p1,10)+1) + ']'; }); }) .end() .appendTo("table") });
$迫使它在名称末尾寻找[0]而不是你拥有的东西.
这里的工作演示:http://jsfiddle.net/jfriend00/S9Q8W/