如何用纯JS瞄准每一行的第一个td
How to target first td of every row with pure JS?
我尝试将每行中第一个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';
使用行和单元格访问表的行和列。见下面的代码,
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/
用JS解析可能会很昂贵,如果你可以用CSS实现同样的目标,那么你就开始吧。
#test tr td:nth-of-type(1) {
color: red;
}
或
#test tr td:first-child {
color: red;
}
正如另一个回复所说,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));
}
使用样式表的好处是可以避免竞争条件(动态构建表的情况)。
相关文章:
- 正在获取生成的PHP td值
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 动态插入的表:JQuery未检测到最后一行
- 如何在td元素中添加监听器
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 如何在Angular UI网格中选择下一行
- 如何首先设置样式<td>表中包含在窗体中的元素
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- 使用javascript获取表的td值
- 使用setAttribute将id设置为元素最后一行的td
- 按行索引查找一行,然后在jquery中查找特定的td
- 获取<td>onclick到另一个<td>与Angular位于同一行
- 如何将td与前一行中的td进行比较
- 添加<td>到表的一行,但不是全部更改行位置
- 使用& lt; td>而不是
显示/隐藏一行 - 如何用纯JS瞄准每一行的第一个td
- 如何求出同一位置下一行td的索引
- 如何跨边界将td内容移动到同一行的另一个td
- 我可以使用jquery或javascript将数据附加到一行中的特定td吗
- 如何从下一行获取与当前TD具有相同索引的TD