jQuery 数据表将 class 添加到 tr
jQuery datatables add class to tr
我正在使用 jQuery 和数据表。我想将 class 添加到特定行的 TR 元素。我知道如何找到该行。 console.dir(row);
显示 row
对象,它以 tr
元素开头。我无法让 jQuery 选择器执行任何操作。我错过了什么?
table = $('#resultTable').DataTable({
aaSorting: [],
ajax: {...},
columnDefs: [...],
createdRow: function (row, data, index) {
//
// if the second column cell is blank apply special formatting
//
if (data[1] == "") {
console.dir(row);
$('tr', row).addClass('label-warning');
}
}
});
$('tr', row)
正在行的上下文中查找 tr 元素,这意味着它将在 内部 中搜索作为上下文提供的 row
中的 tr 元素参数.
根据 API,这应该有效
$(row).addClass("label-warning");
DataTable().row.add()情况:
如果你想在数据表中使用行添加功能时添加class,你可以从node()
方法得到TR-DOM:
var datatable = $('#resultTable').DataTable();
var trDOM = datatable.row.add( [
"Col-1",
"Col-2"
] ).draw().node();
$( trDOM ).addClass('myClass');
您只需要使用 createdRow
$('#data-table').DataTable( {
createdRow: function( row, data, dataIndex ) {
// Set the data-status attribute, and add a class
$( row ).find('td:eq(0)')
.attr('data-status', data.status ? 'locked' : 'unlocked')
.addClass('asset-context box');
}
} );
您还可以通过发送到数据表的 json 数据将 class 添加到 tr
。每个 json 项目有 DT_RowClass
.
就足够了
例如:
{
DT_RowAttr = new
{
attr1 = "1",
attr2 = "2"
}
DT_RowClass = "majid",
DT_RowId = "rowId"
}
在此示例中,DT_RowId
值应用于任何 tr
标签的 id
属性,DT_RowAttr
值将某些自定义属性应用于 tr
标签。
要在行 <tr>
上设置 Id 属性,请使用:
//....
rowId: "ShipmentId",
columns: [...],
//....
要在 <tr>
上设置 class 名称,请使用此回调
createdRow: function (row, data, dataIndex) {
$(row).addClass('some-class-name');
},
参考:https://datatables.net/reference/option/createdRow
要在 <td>
上设置 class 使用
"columns": [
{
data:"",
className: "my_class",
render: function (data, type, row) { return "..."; }
},
{
data:"",
className: "my_class",
render: function (data, type, row) { return "..."; }
},
//...
]
'columnDefs'
类似
参考:https://datatables.net/reference/option/columns.className
另一个解决方案:
createdRow: function (row,data) {
var stsId = data.Ise_Sts_Cost_ID;
if (stsId == 3)
$(row).addClass('table-warning');
else if (stsId == 4)
$(row).addClass('table-success');
else
$(row).addClass('table-danger');
}
我正在使用 jQuery 和数据表。我想将 class 添加到特定行的 TR 元素。我知道如何找到该行。 console.dir(row);
显示 row
对象,它以 tr
元素开头。我无法让 jQuery 选择器执行任何操作。我错过了什么?
table = $('#resultTable').DataTable({
aaSorting: [],
ajax: {...},
columnDefs: [...],
createdRow: function (row, data, index) {
//
// if the second column cell is blank apply special formatting
//
if (data[1] == "") {
console.dir(row);
$('tr', row).addClass('label-warning');
}
}
});
$('tr', row)
正在行的上下文中查找 tr 元素,这意味着它将在 内部 中搜索作为上下文提供的 row
中的 tr 元素参数.
根据 API,这应该有效
$(row).addClass("label-warning");
DataTable().row.add()情况:
如果你想在数据表中使用行添加功能时添加class,你可以从node()
方法得到TR-DOM:
var datatable = $('#resultTable').DataTable();
var trDOM = datatable.row.add( [
"Col-1",
"Col-2"
] ).draw().node();
$( trDOM ).addClass('myClass');
您只需要使用 createdRow
$('#data-table').DataTable( {
createdRow: function( row, data, dataIndex ) {
// Set the data-status attribute, and add a class
$( row ).find('td:eq(0)')
.attr('data-status', data.status ? 'locked' : 'unlocked')
.addClass('asset-context box');
}
} );
您还可以通过发送到数据表的 json 数据将 class 添加到 tr
。每个 json 项目有 DT_RowClass
.
就足够了
例如:
{
DT_RowAttr = new
{
attr1 = "1",
attr2 = "2"
}
DT_RowClass = "majid",
DT_RowId = "rowId"
}
在此示例中,DT_RowId
值应用于任何 tr
标签的 id
属性,DT_RowAttr
值将某些自定义属性应用于 tr
标签。
要在行 <tr>
上设置 Id 属性,请使用:
//....
rowId: "ShipmentId",
columns: [...],
//....
要在 <tr>
上设置 class 名称,请使用此回调
createdRow: function (row, data, dataIndex) {
$(row).addClass('some-class-name');
},
参考:https://datatables.net/reference/option/createdRow
要在 <td>
上设置 class 使用
"columns": [
{
data:"",
className: "my_class",
render: function (data, type, row) { return "..."; }
},
{
data:"",
className: "my_class",
render: function (data, type, row) { return "..."; }
},
//...
]
'columnDefs'
类似参考:https://datatables.net/reference/option/columns.className
另一个解决方案:
createdRow: function (row,data) {
var stsId = data.Ise_Sts_Cost_ID;
if (stsId == 3)
$(row).addClass('table-warning');
else if (stsId == 4)
$(row).addClass('table-success');
else
$(row).addClass('table-danger');
}