2014-02-07 50 views
1

我有一個表,我想根據其內容格式化某些數據字段。例如,如果一個字段小於95%,它應該是紅色的。在jquery中選擇第n個子項和條件格式不起作用

這是我使用

$(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'); 
     } 
    }); 
}); 

它目前選擇每隔一列,並把它綠色的jQuery。

但我希望它跳過前3列(這些包含標題),並只開始應用第4列的格式。

因此第4列會應用的格式,然後6日,8日等

而且由於某種原因,不管什麼樣的價值在我的桌子它被翻綠。所以在我的代碼中,我曾經說過,如果銷售額大於95%,它應該是綠色的,否則是紅色的。但這似乎並沒有發生。

回答

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

您不能%的值進行比較的代碼,所以你需要將其轉換爲整數或浮點數,然後比較

+0

這太棒了,它現在正確的顏色列... 但它似乎仍然工作 - 列正在coloure d不正確。使用上面的代碼(我已經切換了95左右的顏色是綠色的,下面是紅色的) 所有的顏色都是紅色的 - 除了那些在96%和99%之間的值,如果100% – Hulaz

+0

你不能在代碼中進行比較,所以你需要將它轉換爲整數,然後比較 –

+0

@Hulaz:檢查更新的代碼。 –