2012-12-14 32 views
0

我有一個ASP.NET數據透視表,並且該表格的單元格中有各種值1,2,3或4.無論選擇哪個值,都將單元格變爲四個中的一個顏色。JQuery在1個單元格中的多個顏色值

$(function() { 

     var colors = { 1: 'green', 2: 'orange', 3: 'red', 4: 'blue' }; 
     $("td").css('background-color', function (index, value) { 
      var txt = $(this).text(); 
      if (colors.hasOwnProperty(txt)) { 
       $(this).html(' ') 
       return colors[txt]; 
      } 
      return value; 
     }); 

    }); 

在基礎理論這段代碼工作得很好,不過,我想這樣做是不是整個表格單元格打開一個特定的顏色我想表格單元格的一部分變成某種顏色,根據我的數據庫中的單個值!

目前,如果在一個單元格中有3條記錄(比如說3,2,4),那麼代替這些數字是分開的,並且單元格輸出爲3個部分,它們加起來就是紅色,橙色和藍色。 )並且根本不添加顏色值。

+0

爲什麼不使用CSS? – William

+0

如何使用CSS實現相同的效果? – theBo

回答

0

這是HTML架構的問題。您可以通過使用一個span每個號碼劃分單元,並應用色彩的跨度,而不是整個TD

檢查這個fiddle

HTML:

<td> 
    <span>3</span> 
    <span>2</span> 
    <span>4</span> 
    </td>​ 

CSS:

span { 
display:block; 
    float:left; 
}​ 

JS:

var colors = ['green','orange','red','blue']; 
$("span").each(function(){ 
      col = parseInt($(this).text()); 
       $(this).css('background-color', colors[col-1]); 

}); 
+0

不確定你的意思!你可以用代碼片段來量化你的評論嗎?再次,這是JQuery – theBo

+0

當然,我已經添加了一個小提琴和代碼 – Matanya

+0

可能需要提到的是,最初的代碼與一個gridview的源代碼通過數據表生成。比HTMLtable更復雜一點。 – theBo

相關問題