0

行ごとに画像のリストを整理しようとしています.各行に最大4つある必要があります.最初の4つを取得するようですが、次のセットを取得せず、最初の4つを繰り返します.

var imageLinksSource = $(".images-links .imgOriginals"),
listContainer = $(".imgsList"),
dispType = $(".dispType").val(),
arrCounter = 0;


while (arrCounter < imageLinksSource.size()) {
    arrCounter++;
    var $slices = imageLinksSource.slice(0, 4);
    $("<div class='row-fluid'/>").append($slices.clone()).appendTo(".imgsList");
    $slices.remove();
};
4

2 に答える 2

1

どれどれ。まず、あなたの while 状態は奇妙です。行数を配列の現在の配列サイズと比較していますimageLinksSource。のようなものを使用しますimageLinksSource.size() > 0

また、スライスは元の配列を変更しないため、常に同じ要素を取得しています。

例:

while ( imageLinksSource.size() > 0 )
{
    var slices = imageLinksSource.splice(0, 4);
    $("<div class='row-fluid'/>").append($(slices)).appendTo(".imgsList");
}

sliceの代わりにspliceを使用したことに注意してください。ただし、コード全体をテストしていません。

于 2013-07-29T14:33:49.920 に答える
0

Slice は配列を変更しないため、コードを変更してオフセット (つまりimageLinksSource.slice(4*arrCounter, 4*arrCounter + 4);) を含めるか、リストから最初の 4 つの要素を削除する必要があります。

例えば:

while (arrCounter < imageLinksSource.size()) {
    var $slices = imageLinksSource.slice(arrCounter, arrCounter + 4);
    $("<div class='row-fluid'/>").append($slices.clone()).appendTo(".imgsList");
    arrCounter += 4;
};
于 2013-07-29T14:39:51.350 に答える