我想切换表格行的颜色。最初我想记住行的颜色。
var bg = table.rows[I].style.backgroundColor;
在一个特定的行上,bg可能包含“rgb(240,255,248)”
如果我随后写:
table.rows[I].style.backgroundColor = bg;
未设置backgroundColor。
如果我写:
table.rows[I].style.backgroundColor = '#F0FFF8';
设置了backgroundColor。
为什么javascript会将backgroundColor读取为rgb值,但不会将backgroundColor设置为rgb值?如何将rgb值javascript读取转换为可以写入的值?
请注意 - 此时我不想开始设置CSS样式。当前代码都是从已经很复杂的.aspx页面生成的。
答案 0 :(得分:2)
本质上没有什么可以阻止Javascript使用RGB(r,g,b)
表示法设置背景颜色。你的问题在别处。
例如,以下内容完全有效,并将页面的背景颜色设置为浅蓝色。
document.body.style.backgroundColor = 'rgb(240, 255, 248)';
这是一个证明它的JSFiddle:http://jsfiddle.net/4Gcm9/1
我也测试过以下内容并且工作得很好:
<table>
<tbody>
<tr>
<td>Hello</td>
<td>World</td>
</tr>
<tr id="tablerow" bgcolor="#ff0000">
<td>From</td>
<td>HTML</td>
</tr>
</tbody>
</table>
<script type="text/javascript">
var tableRow = document.getElementById('tablerow');
var bg = tableRow.style.backgroundColor;
tableRow.style.backgroundColor = '#00ff00';
var p = prompt("Press enter", "ENTER");
tableRow.style.backgroundColor = bg;
</script>