JQuery动态单元格颜色基于下面的行

时间:2013-09-09 10:47:00

标签: jquery mysql

我有一个从MySQL表动态生成的表,我希望单元格根据下面的目标更改颜色。假设Apr月份,目标为602,结果为435,因此602以下为绿色。但我们以Aug为例。结果略高于目标,即黄色。但Jun它远远高于目标,所以我想把它变成红色。

Month   |   Apr     May     Jun     Jul     Aug
---------------------------------------------------
Result  |   435     495     943     735     617
Target  |   602     592     585     584     610

我在JSfiddle http://jsfiddle.net/D5TQy/中有一个示例,但我不知道如何从下面的行中读取它。

1 个答案:

答案 0 :(得分:0)

您可能需要修改我获取变量cellAbove的方式,但请看一下:(http://jsfiddle.net/D5TQy/3/

var cell = $('tr').last().find('td');
var cellAbove = $('tr').first().find('td');
var threshold= 100;    //defines what is `too much` difference

cell.each(function() {
    var column = $(this).index();

    var cell_value = $(this).text();
    var valueAbove = cellAbove.eq(column).text();

    //red
    if (cell_value - valueAbove > threshold) {
        $(this).addClass('veryOutsideFromTarget');
    }

    //yellow
    else if ((cell_value - valueAbove > 0)) {
        $(this).addClass('outsideTarget');
    } 

    //green
    else{
        $(this).addClass('insideTarget');
    }
});

备注: 使用类而不是修改背景内联样式。这种方式更容易阅读和理解代码。

我修改了你的条件的逻辑,这种方式更有意义。