Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环克隆问题_Javascript_Jquery - Fatal编程技术网

Javascript 循环克隆问题

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

我做了一个简单的文件上传,在拖放id时,我想克隆每个文件的4个输入字段(文件名,可选文本),我尝试了不同的方法。 但问题是它被克隆的次数比它应该克隆的次数要多得多

在我的JSFIDLE示例中,我用5个文件进行了模拟,但它被克隆了15次而不是4次

$(“按钮”)。单击(函数(){
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转换成了一个可执行的代码段(如果编辑被批准的话)。请尽量不要依赖非现场参考来证明您的问题。相反,请在问题中包含与您的问题相关的所有代码(理想情况下以堆栈的形式)。