我有一个从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/中有一个示例,但我不知道如何从下面的行中读取它。
答案 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');
}
});
备注:强> 使用类而不是修改背景内联样式。这种方式更容易阅读和理解代码。
我修改了你的条件的逻辑,这种方式更有意义。