<table>
<thead>
<tr>
<td>sf</td>
</tr>
<tr>
<td>sf</td>
</tr>
<tr>
<td>sf</td>
</tr>
<tr>
<td>sf</td>
</tr>
</thead>
</table>
.red {
background-color: red;
}
.green {
background-color: green;
}
如何使用jQuery自动为TR添加红色和绿色类?
答案 0 :(得分:4)
$('tr:odd').addClass('red');
$('tr:even').addClass('green');
假设你想要每隔一行红色或绿色,按照你的JS小提琴。请注意,这是在每个表中,因此您不会在所有表行中看到红色/绿色/红色。
如果你想要,试试这个:
var oddFilter = function(index) {
console.log(index);
return (index % 2) == 1;
},
evenFilter = function(index) {
console.log(index);
return (index % 2) == 0;
}
$('tr').filter(oddFilter).addClass('red').end()
.filter(evenFilter).addClass('green');
请注意,<thead>
,<tfoot>
等仍然会弄乱显示,因为这会在显示屏周围移动行。
答案 1 :(得分:4)
您不需要JavaScript来完成这种“表格条带化”效果。使用CSS nth-child选择器就可以了解
thead tr {
background: green; /* Set all tr elements to green */
}
thead tr:nth-child(even) {
background: red; /* Override the colour for just the even ones */
}
注意:旧版浏览器不支持此选择器。 IE8及以下。
进一步阅读CSS nth-child:
答案 2 :(得分:1)
你的意思是这样吗?
$(document).ready(function() {
var class = "";
$("tr").each(function(idx, elem) {
class = (idx % 2 == 0)?"red":"green";
$(elem).addClass(class);
});
});
答案 3 :(得分:1)
你能解释一下“自动”吗? 你的意思是页面就绪事件?
也许是这样的事:
$(document).ready(function (){
$("tr:odd").css("background-color", "#f00");
$("tr:even").css("background-color", "#0f0");
});
答案 4 :(得分:0)
试试这个
var trs = jQuery('tr');
trs.filter(':even').addClass('red');
trs.filter(':odd').addClass('green');
不要每次选择两次
答案 5 :(得分:0)
这是最简单的方法:
$("tr").addClass("red");