web-dev-qa-db-fra.com

jQuery datatables ajoute une classe à tr

J'utilise jQuery et datatables. Je veux ajouter une classe à l'élément TR d'une ligne particulière. Je sais comment trouver la rangée. La console.dir(row); montre l'objet row et commence par un élément tr. Je ne peux pas obtenir le sélecteur jQuery de faire quoi que ce soit cependant. Qu'est-ce que je rate?

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');
        }
    }
});
23
7 Reeds

$('tr', row) recherche un élément tr dans le contexte de row, ce qui signifie qu'il recherchera un élément tr inside dans la variable row fournie comme paramètre context.

Selon API , cela devrait fonctionner

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

Il vous suffira d'utiliser le 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');
    }
} );

`

5
ZyMaWy B bOy

Situation DataTable (). Row.add ():

Si vous souhaitez ajouter une classe lors de l'utilisation de la fonction row add dans Datatables, vous pouvez obtenir le TR-DOM à partir de la méthode node()

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

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

$( trDOM ).addClass('myClass');
3
Nick Tsai

Vous pouvez également ajouter une classe à tr en passant par les données json que vous envoyez à datatable. Il suffit que chaque élément JSON ait DT_RowClass.
Par exemple:  

{

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

}  

Dans cet exemple, la valeur DT_RowId s'applique à l'attribut id de toute balise tr et la valeur DT_RowAttr applique un attribut personnalisé à la balise tr.

0
Majid Basirati