我有一个表格,我想根据其内容格式化某些数据字段。因此,例如,如果一个字段小于 95%,它应该是红色的。
这是我正在使用的 jquery
$(function(){
$('#ConditionalTable td:nth-child(2n - 4)').each(function(){
var Sales = $(this).text();
if (Sales > '95%') {
$(this).css('backgroundColor', '#f76e6e');
} else {
$(this).css('backgroundColor', '#99faa0');
}
});
});
它目前每隔一列选择一次并将其变为绿色。
但是我希望它跳过前 3 列(这些列包含标题)并且只从第 4 列开始应用格式。
因此第 4 列将应用格式,然后是第 6、8 等。
同样出于某种原因,无论我的表中有什么值,它都会变成绿色。所以在我的代码中我说过如果销售额大于 95% 它应该是绿色的,否则是红色的。但这似乎并没有发生。
最佳答案
将#ConditionalTable td:nth-child(2n-4)
更改为#ConditionalTable td:nth-child(2n+4)
$(function(){
$('#ConditionalTable td:nth-child(2n + 4)').each(function(){
var Sales = parseInt($(this).text().replace('%',''),10);
if (Sales > 95) {
$(this).css('backgroundColor', '#f76e6e');
} else {
$(this).css('backgroundColor', '#99faa0');
}
});
});
n 的值将为 0,1,2,3,.....
在这种情况下它将选择 4,6,8,10,.... .
child
不能像代码中那样比较%的值,需要先转成整数或者 float 再比较
关于javascript - 在 Jquery 中选择 nth-child 并且条件格式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21627893/