Ich verwende jQuery und Datatables. Ich möchte eine Klasse zum TR-Element einer bestimmten Zeile hinzufügen. Ich weiß, wie ich die Reihe finde. console.dir(row);
zeigt das row
-Objekt und beginnt mit einem tr
-Element. Ich kann den jQuery-Selector jedoch nicht dazu bringen, irgendetwas zu tun. Was vermisse ich?
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)
sucht nach einem tr -Element im Kontext von row, das heißt, es sucht nach einem tr-Element in der als Kontextparameter bereitgestellten row
.
Laut API sollte dies funktionieren
$(row).addClass("label-warning");
Sie müssten nur die createdRow verwenden.
`
$('#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');
}
} );
`
Wenn Sie eine Klasse hinzufügen möchten, wenn Sie die Zeilenadditionsfunktion in Datatables verwenden, können Sie das TR-DOM von der node()
-Methode erhalten:
var datatable = $('#resultTable').DataTable();
var trDOM = datatable.row.add( [
"Col-1",
"Col-2"
] ).draw().node();
$( trDOM ).addClass('myClass');
Sie können auch Klasse zu tr
hinzufügen, indem Sie json-Daten durchleiten, die Sie an datatable senden. Es reicht aus, dass jeder Json-Artikel DT_RowClass
hat.
Zum Beispiel:
{
DT_RowAttr = new
{
attr1 = "1",
attr2 = "2"
}
DT_RowClass = "majid",
DT_RowId = "rowId"
}
In diesem Beispiel gilt der DT_RowId
-Wert für das id
-Attribut eines beliebigen tr
-Tags, und der DT_RowAttr
-Wert wendet ein benutzerdefiniertes Attribut auf das tr
-Tag an.