3

サーバー側でロードされたデータテーブルの値に応じて行の色を変更しようとしていますが、機能していません。私は私のjavascriptでこのようなコードを使用しています:

$('#table').dataTable({
     'bServerSide': true,
     'bProcessing': true,
     'sAjaxSource': 'datatables/my_ajax.php',
     'iDisplayLength': 50,
     "sPaginationType": "bootstrap",
     "fnInitComplete": function(oSettings) {
         for (var i = 0, iLen = oSettings.aoData.length; i < iLen; i++) {
             if (jQuery.inArray(oSettings.aoData[i]._aData[2], food_types) != -1) {
                 oSettings.aoData[i].nTr.className = "myClass";
             }
         }
     },

myClass は次のようになります。

.myClass{ 
    background-color: red;
}

.myClass td {
   background-color: red; 
}

したがって、基本的に、<td>各行の 2 番目に食品タイプ配列に表示される値がある場合、クラスを myClass に変更する必要があります。この部分は機能しています (クラスが変更されたことを firebug で確認できます) が、変更を確認できません (行が赤い背景に変わっていません)。私は何が欠けていますか?また、これは良いアプローチですか、それともajaxから直接色を変更するのがよりクリーンな方法ですか? もしそうなら、どのように?

4

1 に答える 1

3

あなたのdataTableのCSSラッパーがあなたのスタイルを上書きしているように見えます..おそらく、背景色の変化が見られない理由..

適用されているクラスを変更する必要があるようです..

多分これらの用語でもっと

table.display.myClass 
{

 background-color: red !important
}

table.display.myClass td
{

 background-color: red !important
}

データテーブルプラグインによって適用されている正確なクラスについてはわからないので、ラッパーを推測するようなものです..

于 2012-10-09T22:08:15.933 に答える