2012-10-09 258 views
3

我试图根据值更改行颜色,为服务器端加载数据表,但它不起作用。我用这样一个在我的JavaScript代码:Datatables:根据单元更改行颜色

$('#table').dataTable({ 
    'bServerSide': true, 
    'bProcessing': true, 
    'sAjaxSource': 'datatables/my_ajax.php', 
    'iDisplayLength': 50, 
    "sPaginationType": "bootstrap", 
    "fnInitComplete": function(oSettings) { 
     for (var i = 0, iLen = oSettings.aoData.length; i < iLen; i++) { 
      if (jQuery.inArray(oSettings.aoData[i]._aData[2], food_types) != -1) { 
       oSettings.aoData[i].nTr.className = "myClass"; 
      } 
     } 
    }, 

myClass的样子:

.myClass{ 
    background-color: red; 
} 

.myClass td { 
    background-color: red; 
} 

所以,基本上将各行的第二<td>具有对食品的类型出现的值数组,该类应该更改为myClass。这部分工作(我可以看到萤火虫,班级已经改变),但我看不到变化(我没有看到行转向红色背景)。我错过了什么?另外,这是一个好方法,或者更简洁的方法是直接从ajax改变颜色?如果是这样,怎么样?

+0

用这些关于上下文的信息(即页面的其余部分和CSS文件)。你有没有住在某个地方? – Joost

+0

你需要使用jQuery而不是在生成表时只使用if语句来执行此操作的任何原因? –

+0

@RickCalder你知道datatables是什么吗? – luqita

回答

3

看起来你的DataTable的CSS包装纸覆盖你的风格..也许,之所以看不到的的backgroundColor变化..

看起来像您需要更改在其上应用它的类。在这些方面

table.display.myClass 
{ 

background-color: red !important 
} 

table.display.myClass td 
{ 

background-color: red !important 
} 

更多类似猜测包装,因为我有没有关于由数据表插件正在应用的确切类的想法。

也许更多..

+0

怎么这样?你能否给我提供更多的细节,你说'改变它正在应用的课程'是什么意思? – luqita

+0

查看编辑后 –

+0

优秀Sushanth!谢谢!当他们让我(接近6分钟)时我会接受你的回答。 – luqita