如何仅根据某些列的值更改单元格背景颜色

时间:2015-10-11 12:28:20

标签: javascript html html-table rows

我在下面使用此模板来更改某些单元格满足CASE条件时的颜色。函数将自身应用于动态行表中的所有行。我试图修改此函数以将单元格颜色更改为仅限列4,5和6.我的表共有9列。我非常感谢任何帮助。

function formatCells(table){
    var tbody = table.getElementsByTagName('tbody')[0],
        cells = tbody.getElementsByTagName('td'),
        colors = ['red', 'blue', 'green'];
    for (var c = 0, len = cells.length; c < len; c++){
        if (cells[c].cellIndex > 0){
            switch (parseInt((cells[c].textContent || cells[c].innerText), 10)){
                case 1:
                    cells[c].style.backgroundColor = colors[0];
                    break;
                case 2:
                case 3:
                case 4:
                    cells[c].style.backgroundColor = colors[1];
                    break;
                case 5:
                    cells[c].style.backgroundColor = colors[2];
                    break;
            }
        }
    }
}

formatCells(document.getElementsByTagName('table')[0]);

1 个答案:

答案 0 :(得分:0)

以下修改后的if语句将颜色更改限制为第4,第5和第6列:

if ([3,4,5].indexOf(cells[c].cellIndex) >= 0)

[3,4,5]给出第4,第5和第6列(考虑到JavaScript基于零的数组编号

如果参数在数组或字符串

中,

indexOf() >= 0将为true