我有以下代码:
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,lt
,gt
事物)... < / p>
但是这没有按预期工作,在第一次迭代时,它可以正常工作,但在第二次迭代时,它不会控制日志的任何内容。我不确定为什么......(至少应该显示我追加的mandatory-form-input
字段),但它甚至没有显示出来。
我想问一下,我的代码中是否有某些内容? (比如,重置某些$ reference或某种东西的方法?)
注意:我尝试在循环结束时清除$ form变量,它仍然无效......
答案 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());
}