jquery在标签后面追加一个增量
HTML: 因此,如果我的标签名称为“电子邮件”,则这之后的结果是: 第一次点击:电子邮件2 第二次点击:电邮23 第三次点击:电子邮件234 之所以这样做,是因为每次追加后,它都会使用上一个已经有编号的。所以我现在的问题是如何解决这个问题,这样它每次只放一次数字 我想要的结果是: 第一次点击:电子邮件2 第二次点击:电邮3 第三次点击:电子邮件4 尝试使用正则表达式。替换为: HTML JSFIDLE 我修改了JS,但没有修改html 以下是我所做的: 你总是克隆第一个输入,所以永远也得不到数字 修正了一个即使你想添加地址输入也会克隆电子邮件输入的错误 删除了有利于e.e.违约的返回false; 单击时缓存一些选择器。可以做得更多,但这应该足够了。jquery在标签后面追加一个增量,jquery,Jquery,HTML: 因此,如果我的标签名称为“电子邮件”,则这之后的结果是: 第一次点击:电子邮件2 第二次点击:电邮23 第三次点击:电子邮件234 之所以这样做,是因为每次追加后,它都会使用上一个已经有编号的。所以我现在的问题是如何解决这个问题,这样它每次只放一次数字 我想要的结果是: 第一次点击:电子邮件2 第二次点击:电邮3 第三次点击:电子邮件4 尝试使用正则表达式。替换为: HTML JSFIDLE 我修改了JS,但没有修改html 以下是我所做的: 你总是克隆第一个输入,所以永远也得不到数
你的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();
});