Javascript条件格式无法识别

时间:2012-10-26 07:34:49

标签: javascript jquery json datatables

我有一个从JSON文件生成的jQuery DataTable。一切正常,但在条件格式化方面,我陷入困境。以下脚本为第2列中的所有单元格提供了“正”类(甚至是负整数)。我的if语句出了什么问题?

 "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
      if ( parseFloat(aData[1]) <= 0 ) {
         jQuery('td:eq(1)', nRow).addClass('negative');
      } else {
         jQuery('td:eq(1)', nRow).addClass('positive');
      }
      return nRow;
}
提前谢谢!

编辑:JSON文件的一部分(我所指的数字是“被打”:

[
    {
        "spel_id": "2012-09-24 15:43:56",
        "locatie": "white room",
        "speler": "Arne",
        "punten": "17"
    },
   {
        "spel_id": "2012-09-24 15:43:56",
        "locatie": "white room",
        "speler": "Bjorg",
        "punten": "26"
    }
]

和我的js生成表(使用DataTables):

$(document).ready( function() {
        var oTable = $('#example').dataTable( {
            "sAjaxSource": "json_gespeeldekaartings.php",
            "aoColumns": [
              { "mData": "kaarting"},
              { "mData": "speler" },
              { "mData": "punten"}
            ],
            "sAjaxDataProp": "",
            "sPaginationType": "full_numbers",
            "aaSorting": [],
            "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
                if ( parseFloat(aData[1]) <= 0 ) {
                    jQuery('td:eq(1)', nRow).addClass('negative');
                } else {
                    jQuery('td:eq(1)', nRow).addClass('positive');
                }
                return nRow;
                }
            } )
        } );

1 个答案:

答案 0 :(得分:0)

inster of

if ( parseFloat(aData[1]) <= 0 ) {

使用

if ( parseFloat(aData.punten <= 0 )

修改 试试这个:

删除fnRowCallback并在此示例中使用mRender:

...
"aoColumns": [
              { "mData": "kaarting"},
              { "mData": "speler" },
              { "mData": "punten",
                "sType": "numeric",
                "mRender":  function ( data, type, full ) {
                      if(data > 0) return "<div class='positive'>" + data + "</div>"; // example
                      return "<div class='negative'>" + data + "</div>";              // example
                 }
              }
            ],
...