我已经创建了一个jquery表,不时需要清除并重新填充,我明确的方法就是这样:
//Clear table content before repopulating values
$('#table tr:gt(0)').remove();
现在我正在尝试使用tablesorter对特定列进行排序,但我的问题是当我启用tablesorter时:
//Initialize tablesorter
$("table").tablesorter();
表清除方法不再起作用,它只是不断添加旧数据的新数据,创建了大量重复信息。
请帮忙
答案 0 :(得分:16)
要更新tablesorter,需要在更新缓存之前触发“更新”
$('table').trigger('update');
您也可以使用内置功能清除表格
$.tablesorter.clearTableBody( table );
以下是this demo
组合的代码var $table = $('table');
// use built in clear function
$.tablesorter.clearTableBody( $table[0] );
$table
.append('<tr><td>george</td><td>papard</td><td>68</td><td>19.99</td><td>55%</td><td>+3</td></tr>')
.trigger('update');
答案 1 :(得分:1)
我认为没有理由不这样做。它没有tablesorter插件吗?
为什么在tablesorter()
上调用table
,但尝试从#table
删除行?错字?
尝试记录$('#table')
,$('#table tr')
和$('#table tr:gt(0)')
的jQuery对象,看看那里的一切是否正确。
答案 2 :(得分:0)
我能让它工作的唯一方法是重新生成整个表(删除它然后重新创建)。
$(".resultTablePlaceholder").html('').html('<table id="resultTable">...</table>');
$("#resultTable").tablesorter();
答案 3 :(得分:0)
原因:
因为当我们在表中添加任何数据时,它会触发buildCache()方法并将表数据保存在缓存变量中,但是当你从表中删除数据时,它不会对缓存变量进行任何更改。
当您对数据进行排序时,它将清除表并将缓存的数据附加到表中,以便还存在已删除的数据。
解决方案:
你可以修改tablesorter.js中的onselectstart()函数或mousedown事件
//here tb_35 = id of table
cache = buildCache($('#tb_35')[0]);