对于每一行,如何使用数据表根据特定列上的值在 <th> 上添加 class 名称

For every row how to add a class name on the <th> based on the value on a particular column using Datatables

所以我尝试使用数据 ID 将 class 添加到列中。像这样

{ data: 'id' },
{ data: 'Store' },
{ data: 'test','sClass':{ data: 'id' }, }, 

使用数据表。实现此目标的最佳方法是什么?

您可以通过 "fnRowCallback" 添加行进行操作。

$("#your-id").dataTable({
    "data": data,
    "columns": colModel,
    "fnRowCallback": function(nRow, aData) {
        $(nRow).attr('data-user-id', aData.UserId); // nRow is a <tr> DOM
        if (aData.isColored) $(nRow).addClass('colored-row'); // aData is a data row
    }
});

然后你会得到这样的东西:

// ...
<tr class='colored-row' data-user-id="1">
   <td>1</td>
   <td>True</td>
   <td>John</td>
</tr>
<tr data-user-id="2">
   <td>2</td>
   <td>False</td>
   <td>Mike</td>
</tr>
// ...

当然,您可以添加任何其他类、属性、样式等
这取决于您的网站需要:)

您可以使用 createdRow 属性 定义每当创建 TR 元素时的回调。

var table_data = [
    { "id": 1, "Store": 2, "test": 3 },
    { "id": 4, "Store": 5, "test": 6 }
];

$('#example').dataTable( {
    "data": table_data,
    "columns" : [
      { "data": "id" },
      { "data": "Store" },
      { "data": "test" }
    ],
    "createdRow": function( row, data, dataIndex ){
        $('td', row).eq(2).addClass('id-' + data['id']);
    }
});

代码 $('td', row).eq(2) 用于 select 行中的第三个单元格,使用从零开始的索引(2 用于第三个单元格)。代码 addClass('id-' + data['id']) 会将单元格 class 属性设置为 id-X,其中 X 是数据集中 id 字段的值。由于 class 名称不能以数字开头,因此您需要有一个以字母开头的前缀(例如,'id-')。

请参阅 this JSFiddle or Row created callback example 进行演示。