在Jquery中选择nth-child并且条件格式不起作用

时间:2014-02-07 12:32:20

标签: javascript jquery html css

我有一张桌子,我想根据内容格式化某些数据字段。因此,例如,如果字段小于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%,它应该是绿色的,否则是红色的。但这似乎并没有发生。

1 个答案:

答案 0 :(得分:2)

#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,.....个孩子

您无法比较代码中的%值,因此您需要将其转换为整数或浮点数然后进行比较