Javascript 循环克隆问题
我做了一个简单的文件上传,在拖放id时,我想克隆每个文件的4个输入字段(文件名,可选文本),我尝试了不同的方法。 但问题是它被克隆的次数比它应该克隆的次数要多得多 在我的JSFIDLE示例中,我用5个文件进行了模拟,但它被克隆了15次而不是4次Javascript 循环克隆问题,javascript,jquery,Javascript,Jquery,我做了一个简单的文件上传,在拖放id时,我想克隆每个文件的4个输入字段(文件名,可选文本),我尝试了不同的方法。 但问题是它被克隆的次数比它应该克隆的次数要多得多 在我的JSFIDLE示例中,我用5个文件进行了模拟,但它被克隆了15次而不是4次 $(“按钮”)。单击(函数(){ var-lol=5; 对于(var i=0;i0){ var$newCustomer=$('#clonemulti').clone(); $newCustomer.removeAttr('id'); $newCusto
$(“按钮”)。单击(函数(){
var-lol=5;
对于(var i=0;i0){
var$newCustomer=$('#clonemulti').clone();
$newCustomer.removeAttr('id');
$newCustomer.insertAfter(“.clonemulti”);
}
}
});代码>
clone
问题是因为.insertAfter(“.clonemulti”)
正在将新行添加到每个现有的.clonemulti
元素之后
要实现所需的功能,请更改选择器,以便在该元素的最后一个实例之后插入它们:
$newCustomer.insertAfter(".clonemulti:last");
还请注意,当您可以在循环中将i
初始化为1
时,您的if(i>0)
条件是多余的。以下是更新的JS的完整示例:
$('button').click(function() {
var lol = 5;
for (var i = 1; i < lol; i++) {
var $newCustomer = $('#clonemulti').clone();
$newCustomer.removeAttr('id');
$newCustomer.insertAfter(".clonemulti:last");
}
});
$(“按钮”)。单击(函数(){
var-lol=5;
对于(变量i=1;i
哦,亲爱的,非常感谢。我试图在克隆元素上设置:last。。威奇不工作了。但是你的解决方案是有效的,再次感谢。我已经将你的JS FIDLE转换成了一个可执行的代码段(如果编辑被批准的话)。请尽量不要依赖非现场参考来证明您的问题。相反,请在问题中包含与您的问题相关的所有代码(理想情况下以堆栈的形式)。