Изменение цвета строки таблицы.
Народ помогите разобраться с функцией.
Суть в том что есть таблица со строками, цвет которых задается стилем. надо чтобы цвет первой строки таблицы задавался в зависимости от цвета последующих строк при загрузке таблицы вот пример таблицы: <table onload=requred_func();> <tr style=background-color:#00ff00><td>0000000000</td></tr> <tr style=background-color:#00ff00><td>1111111111</td></tr> <tr style=background-color:#00ff00><td>2222222222</td></tr> <tr style=background-color:#ff0000><td>3333333333</td></tr> <tr style=background-color:#00ff00><td>4444444444</td></tr> <tr style=background-color:#00ff00><td>5555555555</td></tr> </table> т.е. надо чтобы просматривались строки со значением от 1 до 5 и в зависимости от их цвета выставлялся цвет для строки 0 вопрос куда копать.... |
а вы начните копать хотя бы куда-нибудь. Вы сами отвечаете на свой вопрос, проверяете значения у всех строк таблицы и исходя из их значения меняете значение определённой строки.
Я не вижу в этом проблемы. И кстати значения атрибута пишут в кавычках, что бы не возникало никаких проблем. |
вот что то накопал, тока что то не работает
function requred_func(obj){ for(var j=1;j<obj.childNodes.length;j++){ if(obj.childNodes[j].style.background-color=='#ff0000'){ obj.childNodes[1].style.background-color='#ff0000'; break; } else{ obj.childNodes[1].style.display='#00ff00'; } } } <table onload=requred_func(this);> |
slavazav, как формируется табличка? Каким-то серверным языком?
|
ksa,
да, формируется на Java но особенность в том что таблица дописывается построчно в файл.. и как следствие первая строка задается раньше чем появляются последующие. поэтому решил обрабатывать это на клиентской стороне |
slavazav, у тебя куча ошибок!!! Не нужно плакаться, научись находить ошибки сам. Иначе всю жизнь будешь на форум вопросы задавать. И так, ошибки:
Во-первых, не рекомендую использовать childNodes. Наплодишь ошибок, и к гадалке не ходи. Собственно, у тебя obj.childNodes вовсе не ведет на <tr>. Во-вторых, стиль background-color в js пишется backgroundColor. Что делать: Переходи на document.getElementsByTagName('tr') И перебирать в цикле их. И еще, не уверен, что onload на таблице - хорошая идея.. |
Цитата:
А тут придется бегать по таблице, вычитывать какие-то значения из хтмл-разметки, как-то это все анализировать... Может таки передумаешь? :) |
написал следующую функцию.
function requred_func(){ for(var i=0;i<document.getElementsByTagName('table').lengt h;i++){ for(var j=1;j<document.getElementsByTagName('table')[i].getElementsByTagName('tr').length;j++){ if(document.getElementsByTagName('table')[i].getElementsByTagName('tr')[j].style.backgroundColor=='#ff0000'){ document.getElementsByTagName('table')[i].getElementsByTagName('tr')[0].style.backgroundColor='#ff0000'; break; } else { document.getElementsByTagName('table')[i].getElementsByTagName('tr')[0].style.backgroundColor='#00ff00'; } } } } но в FF она почему то не работает, хотя в IE все норм |
ksa,
Цитата:
|
slavazav, то, что ты делаешь - неправильно. Учти, в ie цвета - это #ff0000, а в ff - rgb(255, 0, 0). Соответственно, очевидно, что '#ff0000'!='rgb(255, 0, 0)'. Используй class, или еще что..
|
Часовой пояс GMT +3, время: 07:39. |