JQuery不再循环遍历元素

时间:2018-03-12 07:21:56

标签: javascript jquery css dom

我有以下代码:

for(counter = 0; counter < 2; counter++) {
    $form = $("<form></form>");
    $form.append($('.mandatory-form-input'));

    if(counter == 0) {
        $form.append($('.upload_box:lt(10)'));
    } else {
        var start_point = (counter * 10) - 1;
        $form.append($('.upload_box:gt('+ start_point +'):lt(10)'));
    }

    console.log($form.html());
}

我想要实现的逻辑是它应该创建一个表单,添加所有必需的输入,然后在部分上添加输入(基于css,ltgt事物)... < / p>

但是这没有按预期工作,在第一次迭代时,它可以正常工作,但在第二次迭代时,它不会控制日志的任何内容。我不确定为什么......(至少应该显示我追加的mandatory-form-input字段),但它甚至没有显示出来。

我想问一下,我的代码中是否有某些内容? (比如,重置某些$ reference或某种东西的方法?)

注意:我尝试在循环结束时清除$ form变量,它仍然无效......

1 个答案:

答案 0 :(得分:2)

由于您要附加相同的元素$('.mandatory-form-input'),原始元素将从现有位置移除并添加到新的$form对象。

您可以.clone()定位元素,然后附加

  

创建匹配元素集的深层副本。

for(counter = 0; counter < 2; counter++) {
    $form = $("<form></form>");
    $form.append($('.mandatory-form-input').clone()); //Affected line

    ....
    console.log($form.html());
}