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)
}
})
答案 0 :(得分:0)
这是因为这一行:var newNameAttr = (currentNameAttr+(++c))
。会发生什么情况,它会检查currentNameAttr
与$(this).attr('name')
的内容并将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
,这将是“a_”或您设置的任何内容。每次执行此功能时,它都会递增c,以便下次不会分配相同的ID。