Вход

Просмотр полной версии : Раскрасить таблицу


Mark
02.06.2011, 23:48
Здравствуйте! Помогите со скриптом, надо раскрасить таблицу умножения в шахматном порядке.
Таблица есть, а вот раскрасить никак не получается.

function ftable(inum) {
var iloop = 1;
document.writeln ("<font color='#ffffff' size='10'>Таблица умножения</font><pre>");
while (iloop <= 10) {
document.writeln(iloop + " <font color='#ffffff'>x</font> "+ inum + " <font color='#ffffff'>=</font> " + (iloop*inum));
iloop ++;
}
document.writeln("</pre>");
}
ftable(prompt ("Показать таблицу умножения на: ", 5));

uniq
03.06.2011, 14:00
if(iloop%2){
// код для вывода в одной последовательности цветов
}else{
// код для вывода в другой последовательности цветов
}



Либо делать с помощью CSS3 и таблицы:

table tr:nth-child(even) td:nth-child(odd) {background: #CCC}
table tr:nth-child(odd) td:nth-child(even) {background: #CCC}

будут закрашиваться ячейки в шахматном порядке.

nikita.mmf
05.06.2011, 14:20
var table = document.getElementById("product_table");
var rows = table.getElementsByTagName("tr");
for ( var i = 0; rows[i]; i++ ) {
var cells = rows[i].getElementsByTagName("td");
for ( var j = 0; cells[j]; j++ ) {
if ( (i + j) % 2 ) {
cells[j].style.backgroundColor = "#CCC";
}
}
}

monolithed
05.06.2011, 16:48
Mark, перед созданием темы поиском пользовались? ;)

<script type="text/javascript">
window.onload = function(){
var tr = document.getElementById('table').getElementsByTagN ame('tr'),
i = tr.length;
while(i--) {
tr[i].style.backgroundColor = i%2 ? 'red' : 'green';
}
};
</script>
<style>
td {
border: 1px solid #FFF;
width: 50px;
height: 50px;
}
</style>
<table id="table">
<tr><td>1</td><td>1</td><td>1</td></tr>
<tr><td>2</td><td>2</td><td>2</td></tr>
<tr><td>3</td><td>3</td><td>3</td></tr>
</table>

person
06.06.2011, 06:42
Mark, перед созданием темы поиском пользовались?
monolithed, перед ответом вопрос читали?:lol:

monolithed, ну и где тут шахматное поле?

monolithed
06.06.2011, 08:41
перед ответом вопрос читали?
обязательно
ну и где тут шахматное поле?
ой как сложно одну буковку поменять ;)
<script type="text/javascript">
window.onload = function(){
var tr = document.getElementById('table').getElementsByTagN ame('td'),
i = tr.length;
while(i--) {
tr[i].style.backgroundColor = i%2 ? 'red' : 'green';
}
};
</script>
<style>
td {
border: 1px solid #FFF;
width: 50px;
height: 50px;
}
</style>
<table id="table">
<tr><td>1</td><td>1</td><td>1</td></tr>
<tr><td>2</td><td>2</td><td>2</td></tr>
<tr><td>3</td><td>3</td><td>3</td></tr>
</table>

person
07.06.2011, 14:43
monolithed, а потестить свой скрипт религия не позволяет или время?
Добавляем четвертую(четную!!!) ячейку, и любуемся вертикальными полосами, это проистекает из логики работы скрипта, лента, она и в Африке лента.
В строго определенных случаях, можно и так.

Ещё попытка будет? из прЫнцЫпа? :haha:

nikita.mmf
07.06.2011, 15:14
person,
я вам уже написал решение

monolithed
07.06.2011, 15:17
Ещё попытка будет? из прЫнцЫпа?
ну строчку добавить если четное количество столбцов четное parentNode.firstChild, что суть не изменит

TicTac
07.06.2011, 22:53
мой лисапед (http://dl.dropbox.com/u/17626502/js/chessboard/index.html):)

person
08.06.2011, 07:08
nikita.mmf, спасибо, но я своих вариантов ещё в первый день накидал не один(очень похожих), а monolithed просто ошибку указал. Просто интересно, есть ли ещё более крутое решение, вот и слежу за темой, проверяю.


TicTac, коду много, имхо.


Если надо без скрипта, используем TD и TH, для небольших табличек пойдёт.

NoResponse
08.06.2011, 08:56
да не будет других скорее всего, только подобные
<script type="text/javascript">
window.onload = function(){
var tr = document.getElementById('table').getElementsByTagN ame('tr'),
i = tr.length;
while(i--) {
var td = tr[i].getElementsByTagName('td'),
j = td.length;
while(j--) {
td[j].style.backgroundColor = (i+j)%2 ? 'red' : 'green';
}
}
};
</script>
<style>
td {
border: 1px solid #FFF;
width: 50px;
height: 50px;
}
</style>
<table id="table">
<tr><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td></tr>
<tr><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td></tr>
<tr><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td></tr>
<tr><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td></tr>
</table>