jQuery数据表将类添加到tr

时间:2015-09-17 21:27:16

标签: javascript jquery datatables

我正在使用jQuery和datatables。我想在特定行的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');
        }
    }
});

5 个答案:

答案 0 :(得分:45)

$('tr', row)在行的上下文中查找tr元素,这意味着它将搜索作为上下文参数提供的row内的

根据API,这应该有效

$(row).addClass("label-warning");

答案 1 :(得分:8)

您只需使用 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');
    }
} );

答案 2 :(得分:4)

DataTable()。row.add()情况:

如果要在Datatables中使用行添加功能时添加类,可以从node()方法获取TR-DOM:

var datatable = $('#resultTable').DataTable();

var trDOM = datatable.row.add( [
    "Col-1",
    "Col-2"
] ).draw().node();

$( trDOM ).addClass('myClass');

答案 3 :(得分:1)

如果您使用的是“ columns”或“ columnDefs”

使用

设置类
"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

对于行ID,请使用

//.... 
rowId: "ShipmentId",
columns: [...],
//....

答案 4 :(得分:0)

您还可以通过传递发送到datatable的json数据将类添加到tr。每个json项都具有DT_RowClass就足够了。
例如:

{

    DT_RowAttr = new
    {
       attr1 = "1",
       attr2 = "2"
    }
    DT_RowClass = "majid",
    DT_RowId = "rowId"

}  

在此示例中,DT_RowId值应用于任何id标签的tr属性,而DT_RowAttr值将某些自定义属性应用于tr标签。