8

我试图将每行中第一个 td 元素的颜色更改为红色。

HTML:

<table id="test">
<tr>
    <td>test1</td>
    <td>test2</td>
</tr>
<tr>
    <td>test3</td>
    <td>test4</td>
</tr>

</table>

我试过这个JS:

var tr = document.getElementsByTagName('tr');

tr.firstChild.style.color = 'red';

请不要使用Jquery。

4

3 回答 3

13

使用行和单元格访问表格的行和列。见下面的代码,

var table = document.getElementById('test');
for (var i = 0; i < table.rows.length; i++) {
   var firstCol = table.rows[i].cells[0]; //first column
   firstCol.style.color = 'red'; // or anything you want to do with first col
}

演示:http: //jsfiddle.net/QNEyx/

于 2013-05-13T19:47:17.723 回答
8

使用 JS 进行解析可能会很昂贵,如果您可以使用 CSS 实现相同的效果,那么就可以了。

#test tr td:nth-of-type(1) {
   color: red;
}

或者

#test tr td:first-child {
   color: red;
}
于 2013-05-13T19:46:57.687 回答
2

正如在另一个回复中所说,css 是实现这一目标的自然方式。

当您被 js 困住时,您可以使用 js 在页面中注入样式表:

var styleNode=document.createElement("style");
document.head.appendChild(styleNode);
var cssString="#test tr td:first-child {color: red;}";
if (styleNode.styleSheet) { // IE
  styleNode.styleSheet.cssText = cssString;
}
else {
  styleNode.appendChild(document.createTextNode(cssString));
}

使用样式表的好处是可以避免竞争条件(表是动态构建的情况)。

于 2013-05-13T20:08:53.000 回答