JQuery克隆表行和增量输入框id

JQuery克隆表行和增量输入框id,jquery,Jquery,尝试复制上一行(或创建空行),并将每个输入字段id和名称递增1。然而,它所做的只是把数字钉在末端。导致id012345等 我知道.slice()可以删除最后一个字符,但我无法正确实现它。有什么建议吗 <script type='text/javascript'> $(window).load(function(){ var i = 0; //clone previous row $(".clone").click(function() { $("table tr:last")

尝试复制上一行(或创建空行),并将每个输入字段id和名称递增1。然而,它所做的只是把数字钉在末端。导致id012345等

我知道.slice()可以删除最后一个字符,但我无法正确实现它。有什么建议吗

<script type='text/javascript'>
$(window).load(function(){

var i = 0;

//clone previous row
$(".clone").click(function() {
  $("table tr:last").clone().find("input").each(function() {
    $(this).attr({
      'id': function(_, id) { return id.slice(0, - 1) + i },
      'name': function(_, name) { return name + i },
      'value': function(_, value){ return value }
    });
  }).end().appendTo("table");
  i++;
});

//create blank row
$(".blank").click(function() {
  $("table tr:last").clone().find("input").each(function() {
    $(this).attr({
      'id': function(_, id) { return id.slice(0, - 1) + i },
      'name': function(_, name) { return name + i },
      'value': ''
    });
  }).end().appendTo("table");
  i++;
});


});     
</script>

$(窗口)。加载(函数(){
var i=0;
//克隆上一行
$(“.clone”)。单击(函数(){
$(“表tr:last”).clone().find(“输入”).each(函数(){
$(this.attr)({
'id':函数(_,id){return id.slice(0,-1)+i},
'name':函数(_,name){return name+i},
'value':函数(_,value){返回值}
});
}).end().appendTo(“表格”);
i++;
});
//创建空行
$(“.blank”)。单击(函数(){
$(“表tr:last”).clone().find(“输入”).each(函数(){
$(this.attr)({
'id':函数(_,id){return id.slice(0,-1)+i},
'name':函数(_,name){return name+i},
“值”:”
});
}).end().appendTo(“表格”);
i++;
});
});     

您考虑得太多了:

$("#clone").click(function() {
    $("#cloningTable tr:last").after($("#cloningTable tr:last").clone());
    $("#cloningTable tr:last").attr("id", "tr" + $("#cloningTable tr").length);
});
只需使用
tr
s的
length
即可确定ID

这是一把小提琴:

编辑:我假设您也要编辑表行中任何内容的ID。只需修改我的代码(例如,
$(“#cloningTable tr:last input”).attr(“id”,“input”+$(“#cloningTable tr”).length);
)即可将相同的概念应用于子元素