Javascript 使用增量数字在克隆元素中创建唯一名称的问题

Javascript 使用增量数字在克隆元素中创建唯一名称的问题,javascript,auto-increment,increment,cloning,Javascript,Auto Increment,Increment,Cloning,Onclick我正在克隆复选框,以便客户可以订购他们想要的原始报价。我现在有两个问题: 1向原始名称添加唯一编号。它现在的工作方式: 我得到这个a_1,a_12,a_123,等等 而不是这个a_1,a_2,a_3,等等 2另一个问题是,文本框b的增量不是从1开始,而是在前一个文本框a结束的地方。我想从一点开始 感谢您的帮助,以下是我的代码: c = 0; $('input[type="checkbox"]').change(function(){ var currentNameAttr = $(

Onclick我正在克隆复选框,以便客户可以订购他们想要的原始报价。我现在有两个问题:

1向原始名称添加唯一编号。它现在的工作方式:

我得到这个a_1,a_12,a_123,等等

而不是这个a_1,a_2,a_3,等等

2另一个问题是,文本框b的增量不是从1开始,而是在前一个文本框a结束的地方。我想从一点开始

感谢您的帮助,以下是我的代码:

c = 0;
$('input[type="checkbox"]').change(function(){
var currentNameAttr = $(this).attr('name'); 
var newNameAttr = (currentNameAttr+(++c))
var cloned;
if($(this).is(':checked')) {
$(this).parent().parent().parent().clone(true).insertAfter(this)
$(this).prop('checked', false)
$(this).attr('name', newNameAttr)
}
}) 

这是因为这行代码:var newNameAttr=currentNameAttr+++c。发生的事情是,它用$this.attr'name'检查currentNameAttr是什么,并向其中添加c。但是,您没有删除最后一个c,因此需要执行以下操作:

 c = 0;
 $('input[type="checkbox"]').change(function(){
      var baseName = "a_"; 
      var newNameAttr = baseName + c;
           c++;
      var cloned;

      if($(this).is(':checked')) {
           $(this).parent().parent().parent().clone(true).insertAfter(this)
           $(this).prop('checked', false)
           $(this).attr('name', newNameAttr)
      }
 }) 

通过这种方式,它总是将c(大于0的整数)添加到baseName,baseName将是a_u或任何您设置的值。每次使用此函数时,它都会递增c,这样下次它就不会分配相同的id。

谢谢@Luxelin它可以工作。尽管如此,我还是喜欢将密钥名保留在NewNameAttr中。我怎么做呢?我的密钥名称对应于客户的产品Id号。@user3371049这些名称的工作原理有基本格式吗?如中所示,您是否可以始终删除末尾的所有数字?如果是这样,您可以使用正则表达式获取除最后一部分之外的所有部分,然后添加一个新的数字。