2

假设我有这样的页面

<html>    
    <body>
        <table id="t1">
            <tr><th>Head1</th><th>Head2</th></tr>
            <tr><td>1</td><td>2</td></tr>
            <tr><td>3</td><td>4</td></tr>
      </table>
   </body>
</html>

我的 CSS

table th { background:color1;} 
table td { background:color2;}

如何使用 javascript 语句更改除标题行之外的所有行的背景颜色。遍历每一行和每一列是唯一的方法吗?

我可以得到document.getElementById('t1').rows[1]rows[2]改变背景。但是还有另一种有效的方法吗?

4

4 回答 4

7

您可以遍历元素并更改背景

var els = document.getElementById("t1").getElementsByTagName("td");

for(var i=0;i<els.length;i++){
  els[i].style.background = "green"   
}
于 2012-08-09T18:17:25.177 回答
3

在行上放一个类并将背景放在 css 中,就像对表格一样

于 2012-08-09T18:07:34.550 回答
3

你可以试试这个:

table th {background: color1;}
table tbody {background: color2;}

<table id="t1">
    <tr><th>Head1</th><th>Head2</th></tr>
    <tbody id="t2">
        <tr><td>1</td><td>2</td></tr>
        <tr><td>3</td><td>4</td></tr>
    </tbody>
</table>

在脚本中:

document.getElementById('t2').style.backgroundColor=color3;

编辑

也可以将规则添加到特定的styleSheet.

CSS:

table th {background: color1;}
table td {background: color2;}

脚本:

var sSheet = document.styleSheets[0];
if (sSheet.insertRule) {
    sSheet.insertRule('td {background-color: color3}', sSheet.cssRules.length);
} else { // For IE < 9
    sSheet.addRule('td', 'background-color: color3', -1);
}

您还可以修改现有规则本身:

var tdRule,
    sSheet = document.styleSheets[0];       
if (sSheet.cssRules) {
    tdRule = sSheet.cssRules[1];
} else { // For IE < 9
    tdRule = sSheet.rules[1];
}
tdRule.style.backgroundColor = color3;
于 2012-08-09T18:37:33.667 回答
-1

我使用 JQuery。

$('td').css('background','#3232');
于 2012-08-09T18:39:29.690 回答