Разрыв строки Javascript после 5 шагов! - PullRequest
3 голосов
/ 21 марта 2011

Я застрял .... Еще раз.Мне нужно добавить разрыв строки после каждых 5 приращений, используя javaScript.Например,

img1        img2         img3         img4        img5
img6        img7         img8         img9        img10

Вот то, о чем я думал.

for (i = 0; i < blah.length; i++) {
    imgholder.innerHTML += i;
    if (i > 5) {
        imgholder.innerHTML += '<br>';
    }
}

Хорошо, я понимаю, что это не самый структурированный фрагмент кода (извините),но это всего лишь образец.Надеюсь, это имело смысл.Не стесняйтесь задавать больше вопросов для разъяснения.
Приветствия,
Сэм

Ответы [ 4 ]

9 голосов
/ 21 марта 2011

Это сломается после элемента 6, 7, 8 (начиная с нуля, поэтому добавьте 1, чтобы получить номер изображения) и так далее, так как они все больше 5. Таким образом, вы получите:

img1   img2   img3   img4   img5   img6   img7
img8
img9
img10

Вам необходимо заменить:

if (i > 5) {

на:

if ((i % 5) == 4) {

, чтобы оно разрывалось после элемента 4 (img5), 9 (img10), 14 (img15) и т. Д.

И, поскольку вы запросили объяснение, оператор по модулю дает вам остаток при делении.Таким образом, 12 % 5 может быть обработано как то, что осталось, когда вы поделите 12 на 5.12 / 5 дает вам 10 с остатком 2, поэтому 12 % 5 равно 2.

Может помочь следующая таблица:

  i  | i % 5
-----+------
  0  |   0
  1  |   1
  2  |   2
  3  |   3
  4  |   4 *
  5  |   0
  6  |   1
  7  |   2
  8  |   3
  9  |   4 *
 10  |   0
 11  |   1
 12  |   2

Вы можете видеть этоциклически перебирая значения {0, 1, 2, 3, 4}, поэтому нам просто нужно выбрать значение, в которое вы хотите вставить разрывы (после 4, отмеченные *).

4 голосов
/ 21 марта 2011

Это низкотехнологичный, но он подойдет:

if(i % 5 == 4) {
    imgholder.innerHTML+='<br>';
}
0 голосов
/ 21 марта 2011

Вы ищете оператор модуля

for(i=0;i<blah.length;i++){
  if((i+1) % 5 == 0){
    your br goes here
  }
}

0 голосов
/ 21 марта 2011

Вы можете использовать оператор 'modulus', % вместо больше чем > в проверке if.

  for(i=0;i<blah.length;i++) {
    imgholder.innerHTML+=i;
    if(0 == ((i+1)%5)) {
      imgholder.innerHTML+='<br>';
    }
  }
...