数据表更改颜色背景
Datatables change color background
我正在开发一个 table 基于数据table 的服务器端进程。
如果值与同一单元格位置的上一行不同,我想更改每个单元格的背景颜色
这是我使用服务器端进程生成的输出 table:
<table>
<tr>
<td>Acer computer</td>
<td>Ram 32 gb</td>
<td>0</td>
</tr>
<tr>
<td>Acer computer</td>
<td>Ram 32 gb</td>
<td>0</td>
</tr>
<tr>
<td>Acer computer</td>
<td>Ram 16 gb</td>
<td>0</td>
</tr>
</table>
我想为第二个 TR 更改 TD 的背景颜色,因为值已更改。
我尝试使用 createdCell,但结果不佳。
数据table可以吗?有可用的 jsfiddle 帮助吗?
我假设您有办法检查值的状态是否已更改。我的建议是如下例在单元格中设置数据属性,然后使用 css 更改颜色。
<table>
<tr>
<td>Acer computer</td>
<td>Ram 32 gb</td>
<td>0</td>
</tr>
<tr>
<td data-changed='true'>Acer computer</td>
<td>Ram 32 gb</td>
<td>0</td>
</tr>
<tr>
<td>Acer computer</td>
<td>Ram 16 gb</td>
<td>0</td>
</tr>
</table>
试试这个,
使用您的数据库值编辑此代码
通过使用您的 html 代码,我用 jQuery
完成了一个简单的解决方案
使用 .each() 函数
$(document).ready(function(){
var n=1;
var j=0;
var prev_val = function(eq_no){
return $('table tr:eq('+eq_no+') td:last').text();
}
$('table tr').each(function(){
var index_val = $('table tr').index($(this));
var fill_val = $(this).find('td:last').text();
if(index_val == n){
if(fill_val == prev_val(j)){
}
else{
$(this).find('td:last').css({"background":"#0d0d0d"});
}
n++;
j++;
}
});
});
试试这个 fiddle
用数据表解决 API 这里的代码:
"columnDefs": [ {
"targets": [1,2,3,4,5,6,7,8,9,10,11,12,13,14],
"createdCell": function (td, cellData, rowData, row, col) {
if (row > 0) {
old = table.data(row - 1);
if ( cellData != old.row(row).column(col).data()[row-1] ) {
previous_row = old.row(row).column(col).nodes()[row-1]
$(previous_row).css('background-color', '#FFFF99')
}
}
}
} ]
我正在开发一个 table 基于数据table 的服务器端进程。
如果值与同一单元格位置的上一行不同,我想更改每个单元格的背景颜色
这是我使用服务器端进程生成的输出 table:
<table>
<tr>
<td>Acer computer</td>
<td>Ram 32 gb</td>
<td>0</td>
</tr>
<tr>
<td>Acer computer</td>
<td>Ram 32 gb</td>
<td>0</td>
</tr>
<tr>
<td>Acer computer</td>
<td>Ram 16 gb</td>
<td>0</td>
</tr>
</table>
我想为第二个 TR 更改 TD 的背景颜色,因为值已更改。
我尝试使用 createdCell,但结果不佳。
数据table可以吗?有可用的 jsfiddle 帮助吗?
我假设您有办法检查值的状态是否已更改。我的建议是如下例在单元格中设置数据属性,然后使用 css 更改颜色。
<table>
<tr>
<td>Acer computer</td>
<td>Ram 32 gb</td>
<td>0</td>
</tr>
<tr>
<td data-changed='true'>Acer computer</td>
<td>Ram 32 gb</td>
<td>0</td>
</tr>
<tr>
<td>Acer computer</td>
<td>Ram 16 gb</td>
<td>0</td>
</tr>
</table>
试试这个,
使用您的数据库值编辑此代码
通过使用您的 html 代码,我用 jQuery
完成了一个简单的解决方案
使用 .each() 函数
$(document).ready(function(){
var n=1;
var j=0;
var prev_val = function(eq_no){
return $('table tr:eq('+eq_no+') td:last').text();
}
$('table tr').each(function(){
var index_val = $('table tr').index($(this));
var fill_val = $(this).find('td:last').text();
if(index_val == n){
if(fill_val == prev_val(j)){
}
else{
$(this).find('td:last').css({"background":"#0d0d0d"});
}
n++;
j++;
}
});
});
试试这个 fiddle
用数据表解决 API 这里的代码:
"columnDefs": [ {
"targets": [1,2,3,4,5,6,7,8,9,10,11,12,13,14],
"createdCell": function (td, cellData, rowData, row, col) {
if (row > 0) {
old = table.data(row - 1);
if ( cellData != old.row(row).column(col).data()[row-1] ) {
previous_row = old.row(row).column(col).nodes()[row-1]
$(previous_row).css('background-color', '#FFFF99')
}
}
}
} ]