Как создать новую строку таблицы после каждых 4 ячеек в forloop в JavaScript?

#javascript

#javascript

Вопрос:

Не уверен, как использовать оператор modulus для достижения этого:

 <table border="1">
<tr>

for (i = 0; i < someVar.length; i  ) {

   if (i % 4) document.write('</tr><tr>');

   document.write('<td>Hi</td>' i):

}

</tr>
</table>
  

Комментарии:

1. Почти. Мысленно просматривайте код и отслеживайте значения i и i % 4 по мере их изменения. Также учтите, что (i % 4) вычисляется true в условном выражении только тогда, когда его результат отличен от нуля. Я не собираюсь писать ответ, потому что решение довольно простое, и я хочу, чтобы вы выяснили это самостоятельно.

2. @Tomalak: хорошая идея, но, извините, я написал свой ответ одновременно 🙂

3. вам также следует заменить i): for ); в вашем коде

Ответ №1:

 <table border="1">
<tr>

for (i = 0; i < someVar.length; i  ) {

   document.write('<td>Hi</td>' i);

   if (i % 4 == 3) document.write('</tr><tr>');

}

</tr>
</table>
  

Ответ №2:

 if(i%4==3) document.write('</tr><tr>');
  

и после цикла for должно быть что-то, что добавляет пустые ячейки в последнюю строку, т.Е.

 while(i  %4!=0) document.write('<td>amp;nbsp;</td>');
  

Ответ №3:

 <table id="tabid" border="1" >
<script  language="javascript1.1" type="text/javascript" >

for (i = 0; i < 12; i  ) {

   if (i % 4==0) document.write('</tr><tr>');

   document.write('<td>Hi' i '</td>');

}
</script>
</table>
  

У меня работает нормально

Комментарии:

1. Это оставляет таблицу с пустой строкой в ее начале.

2. @tom я пробовал и работает нормально. Я отредактировал код и опубликовал рабочий код

3. Теперь вам не хватает закрытия </tr> . «работает нормально» для вас, сейчас, в вашем браузере не является хорошим показателем для веб-разработки. Напишите свои страницы для проверки на соответствие стандартам, а затем тщательно протестируйте. Теперь, когда я думаю об этом, вероятно, недопустимо иметь тег script внутри таблицы.

4. Я использую IE8 и FF3.6 — Это не очень хорошие браузеры!. Я принимаю точку зрения стандартов, но я просто отвечаю на вопрос. вы не посоветовали спрашивающему, что это неправильная практика 🙂

5. Два браузера вряд ли можно назвать тщательным тестированием. И, как я уже сказал, ваш код не генерирует закрытие </tr> , что незаконно в HTML.

Ответ №4:

 for (var i = 0; i < 10; i  ) {
    document.write("<td>Example</td>");
    if (i % 4 == 3) {
        document.write("</tr><tr>");
    }
}
  

Смотрите пример здесь: http://jsfiddle.net/UeThn/28