JQuery 表排序器清除表信息



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

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

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

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

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

请帮忙

要更新表排序器,需要先触发"更新",然后才能更新其缓存

$('table').trigger('update');

您还可以使用内置函数来清除表格

$.tablesorter.clearTableBody( table );

这是此演示中组合的代码

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');

我认为没有理由它不应该工作。它是否可以在没有表排序器插件的情况下工作?

为什么在table上调用tablesorter(),但尝试从#table中删除行?错字?

尝试记录 $('#table')$('#table tr')$('#table tr:gt(0)') 的 jQuery 对象,看看那里是否一切正确。

我能让它工作的唯一方法是重新生成整个表(删除它,然后再次创建)。

$(".resultTablePlaceholder").html('').html('<table id="resultTable">...</table>');
$("#resultTable").tablesorter();

原因:

这是因为当我们在表中添加任何数据时,它会触发 buildCache() 方法并将表数据保存在缓存变量中,但是当您从表中删除数据时,它不会对缓存变量进行任何更改。

当您对数据进行排序时,它将清除表并将缓存的数据附加到表中,以便也存在已删除的数据。

溶液:

您可以在 TableSorter 中修改 OnSelectstart() 函数或鼠标按下事件.js

//here tb_35 = id of table 
cache = buildCache($('#tb_35')[0]);

最新更新