查询数据表排序不适用于运行时值

时间:2012-02-08 10:42:58

标签: php jquery

我使用jquery数据表进行排序。它在正常情况下工作正常。如果我在运行时更改了值,则排序不起作用。

这是我的表数据

<table width="94%" cellpadding="2" cellspacing="1" class="tablehead" id="pls-batting">
  <thead>     
    <tr class="tab_head" align="right" id="pls-play" >
      <th width="44" align="center" ># No </th>
    </tr>
  </thead>
  <tbody>
    <tr  id="116706">
      <td align="left" id='1' >test</td>
    </tr>
    <tr id="116707">
      <td align="left" id='2'>bbb</td>
    </tr>
    <tr id="116708">
      <td align="left" id='3' >xxx</td>
    </tr>
  </tbody>
</table>

用于排序的Jquery方法是:

$(document).ready(function() {

    $('#pls-batting').dataTable( {

        } );
 } );

单击“#No”,分别按asc和desc顺序显示相应的列。将使用

更改这些TD值
    document.getElementById(3).innerHTML = 'something';

因此,第三列值是'某事'。因此,将通过此值进行排序。但它没有用。

它需要旧的价值观。请帮我。感谢

3 个答案:

答案 0 :(得分:0)

使用javascript更改表的值后,您需要重绘表:

$('#pls-batting').dataTable();
document.getElementById(3).innerHTML = 'something';
$('#pls-batting').fnDraw();

作为旁注:数字ID无效。它必须以字母字符开头,例如a1

答案 1 :(得分:0)

首先,你有什么理由使用:

document.getElementById(3).innerHTML = 'something';

而不是:

$('#3').html('something');

如果没有理由那么改变它再试一次。如果这不起作用,那么一旦你通过执行以下操作将值更改为重新初始化dataTable:

$('#pls-batting').dataTable( { // options here } );

因为函数可能会缓存表值和位置,所以每次进行排序时都不必遍历DOM。

答案 2 :(得分:0)

你应该重绘表格。最好的方法是像这样缓存数据表:

$(document).ready(function() {

  var oTable = $('#pls-batting').dataTable() ;
  document.getElementById(3).innerHTML = 'something';
  oTable.fnDraw();
 } );