我只想问这是否有效,因为这是我的脚本按预期工作的唯一方式:
for (var j = 0; j < items.length; j) {
for (var k = 1; k <= 3; k++) {
$(items.eq(j)).appendTo('.col'+k);
j++;
}
}
注意for语句中没有递增的j
。
如果我增加j
,由于某种原因,循环忽略每4 div
,我无法解释原因。
我的主要问题是这是否是一种有效的方法,如果不是,那么您是否有更好的解决方案来在每列中分发div
?
答案 0 :(得分:5)
更自然的方法是直接迭代items
:
$(".item").each(function(n) {
$(this).appendTo('.col' + (n % 3 + 1));
});
模数运算符%
使n
在值0,1,2,0,1,2等上循环。
答案 1 :(得分:2)
也许是这样的?
k=1;
for (var j = 0; j < items.length; j++) {
$(items.eq(j)).appendTo('.col'+k);
k++;
if(k==4){
k=1;
}
}
答案 2 :(得分:2)
while语句可能会更好。其他明智的 shrugs 如果它有效则可行。每个人都有。通过很多方式去做同样的事情。
var j = 0;
while (j < items.length){
for (var k = 1; k <= 3; k++) {
$(items.eq(j)).appendTo('.col'+k);
j++;
}
}
======================
只要您有3个陈述,或者我应该在for语句中说出2“”分号“”,您可以拥有任何您想要的东西......
for (;;j++){
}
for ( ;X<K;T){
}
有时候语句可能会在初始化,条件化和下一个激怒语句中变得相当复杂。有时他们会变得相当简单。指出他们并不总是拥有所有3种符号。
答案 3 :(得分:-1)
我正在回答标题中的问题。如果要根据情况增加循环,可以使用以下代码。
for (int i =1 ;i<10;i=i+0){
if (case)
do your work here.
i++;
else
do nothing here
}