0

我正在从 mysql 获取数据,我想突出显示所获取数据的第一行。

这是我的代码

$(document).ready(function() {
                $('#example').dataTable( {
                    "bProcessing": true,
                    "bServerSide": true,
                    "sAjaxSource": "scripts/server_processing.php"
                } );                
                $('tr:eq(2)').addClass( 'tcurrent' );
            } );

代码按原样获取数据,但突出显示表脚。

这是我的CSS

.tcurrent{background-color:pink;}

这可以使用现有的回调之一来完成吗?

4

3 回答 3

2

问题是,您的脚本正在运行来自服务器的数据可能还没有加载到表中。

由于您使用的是服务器端处理,因此它异步加载数据,这意味着$('tr:eq(2)').addClass( 'tcurrent' )执行时表可能不包含任何行。

这种情况下的解决方案是使用加载回调方法,但在这种情况下,我在datatables 文档中没有看到任何服务器加载回调。

一种可能的解决方案是使用 fnRowCallback

"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
  // Bold the grade for all 'A' grade browsers
  if ( iDisplayIndex == 2 ) {
    $(nRow).addClass( 'tcurrent' );
  }
}
于 2013-06-25T09:53:00.937 回答
0

你可以试试这个代码css

table tbody tr:nth-child(3){
    background-color:pink;
}

更新

$('#example').dataTable( {
      "bProcessing": true,
      "bServerSide": true,
      "sAjaxSource": "scripts/server_processing.php",
      "fnDrawCallback": function( oSettings ) {
          $('#example tr:eq(2)').addClass( 'tcurrent' );
      }
});

阅读文档http://datatables.net/ref#fnDrawCallback

于 2013-06-25T09:46:06.023 回答
0

$('tr:eq(2)')正在选择第三行。

如果您想要第一个,请使用$('tr:eq(0)')$('tr:first')

于 2013-06-25T09:47:58.850 回答