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

时间:2014-07-01 14:25:11

标签: jquery

尝试复制上一行(或创建空白行)并让它将每个输入字段的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>

1 个答案:

答案 0 :(得分:1)

你在想这个:

$("#clone").click(function() {
    $("#cloningTable tr:last").after($("#cloningTable tr:last").clone());
    $("#cloningTable tr:last").attr("id", "tr" + $("#cloningTable tr").length);
});

只需使用length的{​​{1}}来确定ID。

这是一个小提琴:http://jsfiddle.net/LimitedWard/ufN38/

编辑:我假设您还想编辑表格行内的任何ID。只需修改我的代码(例如tr)即可将相同的概念应用于子元素。