给区域一个静态 ID。将这些样式规则放在某处,例如页面标题:
<style>
.annual{
background-color:yellow;
}
.ex{
background-color:grey;
}
.trainingcourse{
background-color:peach;
}
</style>
运行此 javascript,但将 STATICID 替换为报告的静态 ID。在需要的地方添加案例和类。这里的优点是您可以从 CSS 中引导外观,而不是使用 jquery。如果您愿意,您可以立即分配背景颜色,但我自己的偏好是保持分开。
$("#report_STATICID td[headers]").each(function(){
var lTest = $(this).text(), lClass;
switch(lTest){
case 'AL':
lClass = "annual";
break;
case 'X':
lClass = "ex";
break;
case 'C':
lClass = "trainingcourse";
break;
};
if(lClass){
$(this).addClass(lClass);
};
})
编辑:从评论中可以看出,您使用的主题以及您所在地区的模板在这些问题上非常重要。
(注意:在下面的示例中,我使用了一个简单的经典报告,该报告基于 emp 表上的选择,具有静态 id empreport)
在这种情况下,@Robovisits 使用的是 Theme 13 - Classic Blue。首先要检查的是标记:
这使您可以确定选择器是否正确,并将针对正确的元素。验证这一点的最佳方法是在浏览器的开发人员工具中从控制台运行选择器并检查返回值。
现在当我运行这段代码时:
$("#report_empreport td[headers]").each(function(){
var lTest = $(this).text(), lClass;
switch(lTest){
case 'KING':
lClass = "class1";
break;
case 'PICARD':
lClass = "class2";
break;
case 'FRANCINE':
lClass = "class3";
break;
};
if(lClass){
$(this).addClass(lClass);
};
})
然后我右键单击我认为应该受此影响的列并选择检查元素(在这种情况下,我在 Chrome 的开发工具中)。
很好,所以我的带 KING 的牢房确实上了正确的课。现在为什么不上色?
由于我想使用 CSS 着色,我需要在 html 窗格中选择受影响的元素,然后我可以在右侧的 CSS 窗格中进行检查:
如您所见,class1 的 CSS 被覆盖!这里发生的是另一个更具体的规则优先于我们的规则。坦率地说,选择器越具体,它在应用规则时的优先权就越大。这可以通过给我使用更多“权重”的选择器来解决。
body table.t13Standard td.class1{
background-color:yellow;
}
注意:也可以选择使用 !important 来简单地覆盖任何内容,无论具体如何。我通常会避免这种情况,除非它确实有意义。它可能看起来像这样:
.class1{
background-color:yellow !important;
}