我想将交替颜色添加到表格中的行,但是当第一列中的数据与上面的行相比发生变化时,我希望切换颜色,而不是每隔一行更改颜色。例如,在下表中,前两行将具有相同的颜色,因为第一个字段都是“1”,第三行将具有不同的颜色。我正在寻找没有像jquery这样的第三方库的解决方案。
1 |一个
1 |乙
2 | ç
3 | d
4 | E
答案 0 :(得分:3)
以下是一种方法:jsfiddle demo
答案 1 :(得分:1)
如果你的表是1维的话,这一小块代码非常好:
(function(){
var trs = document.getElementById('thetable').getElementsByTagName('tr');
var last, toggle = false;
for(var i = 0; i < trs.length; i++){
var tds = trs[i].getElementsByTagName('td');
toggle ^= last != tds[0].innerText;
trs[i].style.backgroundColor = toggle ? '#AAAACC' : '#CCDDCC';
last = tds[0].innerText;
}
})();
如果表中有表格,则需要进行一些修改。
答案 2 :(得分:0)
如果行已经排序,您可以循环浏览它们并根据需要分配类:
var trs = document.getElementById('yourTable').rows,
i = 0,
l = trs.length,
altValue = true,
currentTr,
tdValue;
while (i) {
i -= 1;
currentTr = trs[i];
tdValue = currentTr.getElementsByTagName('td')[0].innerHTML;
if (tdValue !== currentValue) {
altValue = altValue ? false : true;
}
if (altValue) {
currentTr.className = currentTr.className ?
'alt' : currentTr.className + ' alt';
}
}