Подтвердить что ты не робот

Как установить цвет для строк таблицы на основе значения столбца в таблице данных jQuery

Я использую jQuery datatables. У меня есть следующие данные:

Column1 Column2 Column3
-----------------------
 AAA    BBB     CCC
 AAA    GGG     YYY
 BBB    ooo     LLL

Теперь в столбце 1 для первых 2 строк у меня есть одно и то же значение AAA. Я хочу применить некоторый цвет к тем  rows.And then another color для третьей строки. Подобно этому у меня есть 30 записей. Возможно ли это сделать. Если возможно, как я могу это сделать. Я использую таблицы данных jQuery. Спасибо заранее.

4b9b3361

Ответ 1

Используйте fnRowCallback (или новее rowCallback) для достижения этого

$('#example').dataTable({
    "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
        switch(aData[0]){
            case 'AAAA':
                $(nRow).css('color', 'red')
                break;
            case 'BBBB':
                $(nRow).css('color', 'green')
                break;
            case 'CCCC':
                $(nRow).css('color', 'blue')
                break;
        }
    }
});

Демо: Fiddle

Ответ 2

API недавно изменился, теперь вы должны использовать aData ['Column1'] вместо aData [0]

Ответ 3

createdRow была добавлена ​​в v 1.10

Этот обратный вызов выполняется при создании элемента TR (и все дочерние элементы TD) или зарегистрирован при использовании источника DOM, что позволяет манипулировать элементом TR.

Это особенно полезно при использовании отложенного рендеринга (deferRender) или обработки на стороне сервера (serverSide), чтобы вы могли добавлять события, информацию о имени класса или иным образом форматировать строку при ее создании.

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

Пример:

    $('#example').dataTable({
        // ...
        "createdRow": function( row, data, dataIndex ) {
            if ( data["column_index"] == "column_value" ) {
                $( row ).css( "background-color", "Orange" );
                $( row ).addClass( "warning" );
            }
        },
        // ...
    });