我使用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';
因此,第三列值是'某事'。因此,将通过此值进行排序。但它没有用。
它需要旧的价值观。请帮我。感谢
答案 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();
} );