web-dev-qa-db-ja.com

jQueryデータテーブルはtrにクラスを追加します

JQueryとデータテーブルを使用しています。特定の行の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');
        }
    }
});
26
7 Reeds

$('tr', row)は、行のコンテキストでtr要素を探しています。つまり、tr要素を検索しますinsideコンテキストパラメータとして提供されたrow

[〜#〜] api [〜#〜] によると、これは動作するはずです

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

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');
    }
} );
12
Hamza Zymawy

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');
5
Nick Tsai

また、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タグにカスタム属性を適用します。

1
Majid Basirati