for循环而不在迭代语句中递增

时间:2013-11-12 17:25:15

标签: javascript jquery for-loop

我只想问这是否有效,因为这是我的脚本按预期工作的唯一方式:

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,我无法解释原因。

Here's a demo of this script

我的主要问题是这是否是一种有效的方法,如果不是,那么您是否有更好的解决方案来在每列中分发div

4 个答案:

答案 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
}