3

これが私のスクリプトが期待どおりに機能する唯一の方法であるため、これが有効かどうかを尋ねたかっただけです。

for (var j = 0; j < items.length; j) {
    for (var k = 1; k <= 3; k++) {
        $(items.eq(j)).appendTo('.col'+k);
        j++;
    }
}

jfor ステートメント内で増加していないことに注意してください。

をインクリメントすると、何らかの理由でjループが 4 番目ごとに無視され、その理由を説明できません。div

これがこのスクリプトのデモです。

私の主な質問は、これが有効な方法であるかどうかです。そうでない場合div、各列に s を分散するためのより良い解決策はありますか?

4

4 に答える 4

5

より自然なアプローチは、items直接繰り返すことです。

$(".item").each(function(n) {
    $(this).appendTo('.col' + (n % 3 + 1));
});

モジュラス演算子%n、値 0、1、2、0、1、2 などを循環させます。

于 2013-11-12T17:31:04.853 に答える
2

たぶん、このようなものですか?

k=1;
for (var j = 0; j < items.length; j++) {
  $(items.eq(j)).appendTo('.col'+k);
  k++;
  if(k==4){
    k=1;
  }
}
于 2013-11-12T17:28:21.300 に答える
2

while ステートメントの方が読みやすいかもしれません。それ以外の場合は、それが機能する場合は肩をすくめます。それぞれに独自のものがあります。同じことをする方法がたくさんあります。

var j = 0;
while (j < items.length){
    for (var k = 1; k <= 3; k++) {
        $(items.eq(j)).appendTo('.col'+k);
        j++;
    }
}

======================

forステートメント内に3つのステートメントがあるか、2つの「セミコロン」と言う必要がある限り、必要なものは何でもかまいません...

for (;;j++){
}

for ( ;X<K;T){
}

for ステートメントは、初期化中、条件付き、および次の刺激ステートメントで、かなり複雑になることがあります。場合によっては、かなり単純になることがあります。指摘するために、それらは常に 3 つの表記法すべてを持っているわけではありません。

于 2013-11-12T17:41:36.427 に答える