#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