如何使用分页function取消选中tablesorter中的所有复选框

我被这个折磨了很长一段时间。

由于表格分类器分页将完全从表中删除不可见的行,以便更快地进行排序。 我无法让每一行中的复选框都能满足我的需求。

这是我的jsfiddle – > http://jsfiddle.net/NcqfY/3/

单击变量触发器以显示表

基本上我想要做的是获取所有选定行的id并将它们推入数组selectedID 。 创建报告时清空selectedID数组(或单击“创建报告”按钮)。 所以在我点击按钮后,我希望表中的所有复选框都应该取消选中。 我使用以下代码:

$('table.tablesorter tbody tr').find('input[type=checkbox]').prop('checked', false); // I can only uncheck the boxes in current page

但是,我只能取消选中当前页面中的框,而不包括不可见的页面。 这真的让我很难获得所选行的正确ID。

任何人都可以帮助我将不胜感激!

你的部分javascript中有一些错误:

 $('table.tablesorter tbody').on("click", "tr", function(event) { if (event.target.type != 'checkbox') { $(':checkbox', this).trigger('click'); var id = $(this).attr('id'); if (selectedID.indexOf(id) == -1) { selectedID.push(id); } else { var index = selectedID.indexOf(id); selectedID.splice(index, 1); } } }); 

我为你纠正了它们似乎工作正常:
!== – > !=
=== – > ==
var id = $(this).attr('id') – > var id = $(this).attr('id');

编辑:以上不适合我,所以我认为这是问题,但回答你的问题:

 $($(".tablesorter")[0].config.rowsCopy).each(function() { $(this).find('input[type=checkbox]').prop('checked', false); }); 

这将取消检查表中的所有复选框,甚至是隐藏的复选框

根据tablesort的寻呼机文档 ,你可以这样做:

 var t = $('table') // disabling the pager will restore all table rows t.trigger('disable.pager'); // ---do your thing--- // restore pager t.trigger('enable.pager'); 

这似乎有效,因为您没有省略寻呼机的大小选择器(如果这样做,它会抛出错误)。

我已经更新了你的JSFiddle: jsfiddle.net/NcqfY/6/