jQuery datatables add class to tr

后端 未结 5 1776
孤独总比滥情好
孤独总比滥情好 2021-02-01 01:55

I am using jQuery and datatables. I want to add a class to the TR element of a particular row. I know how to find the row. The console.dir(row); shows the r

相关标签:
5条回答
  • 2021-02-01 02:17

    To set a class name on the <tr> use this calback

    createdRow: function (row, data, dataIndex) {
        $(row).addClass('some-class-name');
    },
    

    ref: https://datatables.net/reference/option/createdRow

    To set a class on the <td> use

    "columns": [
    { 
        data:"",
        className: "my_class",
        render: function (data, type, row) { return "..."; }
    },
    { 
        data:"",
        className: "my_class",
        render: function (data, type, row) { return "..."; }
    },
    //...
    ]
    

    Something similar for 'columnDefs'

    ref: https://datatables.net/reference/option/columns.className

    To set the Id attribute on the row <tr> use:

    //.... 
    rowId: "ShipmentId",
    columns: [...],
    //....
    
    0 讨论(0)
  • 2021-02-01 02:24

    DataTable().row.add() situation:

    If you want to add class when using row add function in Datatables, you could get the TR-DOM from node() method:

    var datatable = $('#resultTable').DataTable();
    
    var trDOM = datatable.row.add( [
        "Col-1",
        "Col-2"
    ] ).draw().node();
    
    $( trDOM ).addClass('myClass');
    
    0 讨论(0)
  • 2021-02-01 02:31

    Also you can add class to tr by pass through json data that you send to datatable. It's enough that every json item has DT_RowClass.
    For example:

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

    In this example DT_RowId value apply to id attribute of any tr tag and DT_RowAttr value apply some custom attribute to tr tag.

    0 讨论(0)
  • 2021-02-01 02:38

    $('tr', row) is looking for a tr element in the context of row, meaning it will search for a tr element inside the row provided as context parameter.

    According to API, this should work

    $(row).addClass("label-warning");
    
    0 讨论(0)
  • 2021-02-01 02:41

    You would just have to use the 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');
        }
    } );
    
    0 讨论(0)
提交回复
热议问题