JQuery Tablesorter清除表信息

时间:2012-12-15 17:01:07

标签: jquery tablesorter

我已经创建了一个jquery表,不时需要清除并重新填充,我明确的方法就是这样:

//Clear table content before repopulating values
$('#table tr:gt(0)').remove();

现在我正在尝试使用tablesorter对特定列进行排序,但我的问题是当我启用tablesorter时:

//Initialize tablesorter
$("table").tablesorter();

表清除方法不再起作用,它只是不断添加旧数据的新数据,创建了大量重复信息。

请帮忙

4 个答案:

答案 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]);