Javascript将行backgroundColor读为rbg,但未设置backgroundColor

时间:2014-01-07 17:03:25

标签: javascript

我想切换表格行的颜色。最初我想记住行的颜色。

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页面生成的。

1 个答案:

答案 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>