jquery在标签后面追加一个增量

jquery在标签后面追加一个增量,jquery,Jquery,HTML: 因此,如果我的标签名称为“电子邮件”,则这之后的结果是: 第一次点击:电子邮件2 第二次点击:电邮23 第三次点击:电子邮件234 之所以这样做,是因为每次追加后,它都会使用上一个已经有编号的。所以我现在的问题是如何解决这个问题,这样它每次只放一次数字 我想要的结果是: 第一次点击:电子邮件2 第二次点击:电邮3 第三次点击:电子邮件4 尝试使用正则表达式。替换为: HTML JSFIDLE 我修改了JS,但没有修改html 以下是我所做的: 你总是克隆第一个输入,所以永远也得不到数

HTML:

因此,如果我的标签名称为“电子邮件”,则这之后的结果是:

第一次点击:电子邮件2 第二次点击:电邮23 第三次点击:电子邮件234 之所以这样做,是因为每次追加后,它都会使用上一个已经有编号的。所以我现在的问题是如何解决这个问题,这样它每次只放一次数字

我想要的结果是:

第一次点击:电子邮件2 第二次点击:电邮3 第三次点击:电子邮件4 尝试使用正则表达式。替换为:

HTML

JSFIDLE

我修改了JS,但没有修改html

以下是我所做的:

你总是克隆第一个输入,所以永远也得不到数字 修正了一个即使你想添加地址输入也会克隆电子邮件输入的错误 删除了有利于e.e.违约的返回false; 单击时缓存一些选择器。可以做得更多,但这应该足够了。
你的html是什么样子的?你能发布一个JSFIDLE吗?我建议将计数放在一个span中,然后简单地用新的计数更新span的html,但我不知道没有html是否可以做到这一点。干杯,我添加了一个答案:
<div class="main_holder">
      <div class="input_holder">
        <label for="something">Email</label><br/>
            <input type="text" id="field_input" name="email" /> 
      </div>
      <a href="#" class="add">Add+</a>

      <div class="input_holder">
        <label for="something">Address</label><br/>
            <input type="text" id="field_input" name="address" /> 
      </div>
      <a href="#" class="add">Add+</a>

      <div class="input_holder">
        <label for="something">Name</label><br/>
            <input type="text"  id="field_input" name="name" /> 
      </div>
      <a href="#" class="add">Add+</a>
    </div>  
$('a.add').click( function() { 
        var n=$(this).prevAll('.input_holder').size()+1;
        $(this).prev('.input_holder').clone().insertBefore(this);
        $(this).prev('.input_holder').find('label').append(n);
        return false;
    });
$(this).prev('.input_holder').find('label').append('0').text( function(i,str) {
    return str.replace(/\d+$/, n);
});
<div class="main_holder">
  <div class="input_holder">
    <label for="something">Email</label><br/>
    <input type="text" id="field_input" name="email" /> 
  </div>
  <a href="#" class="add">Add+</a>

  <div class="input_holder">
    <label for="something">Address</label><br/>
    <input type="text" id="field_input" name="address" /> 
  </div>
  <a href="#" class="add">Add+</a>

  <div class="input_holder">
    <label for="something">Name</label><br/>
    <input type="text"  id="field_input" name="name" /> 
  </div>
  <a href="#" class="add">Add+</a>
</div>  
$('a.add').click( function(e) { 
  var $this = $(this),
      $prev = $this.prevUntil('.add');

  $prev.last().clone().insertBefore(this);
  $this.prev('.input_holder').find('label').append($prev.length + 1);

  e.preventDefault();
});