【发布时间】:2015-09-28 15:26:54
【问题描述】:
我正在使用出色的 jQuery Datatables 插件。
我有一个简单的表格,其中每一行的第一列是一个带有 .chk-items 类的复选框。
我希望用户能够选择多行,然后对已选中复选框的所有行执行操作。这可能包括选中一个或多个框,使用 SEARCH 工具进行过滤,然后选中其他框。这当然意味着某些被检查的行不再可见(即它们已被过滤掉)。
我目前有以下处理检查的行:
var tableData = new Array([]);
var idx = 0;
$('.chk-items').each(function() {
//Add checked items to next tab
if($(this).is(':checked')) {
//Get the selected row data into an array
var rowData = (this).closest('tr').children("td").map(function() {
return $(this).text();
}).get();
tableData[idx] = rowData;
idx = idx + 1;
}
})
但是,当其中一个选中的行被搜索过滤掉时,这不起作用。
任何人都可以建议一种方法来更改它以处理被搜索过滤掉的检查行吗?
【问题讨论】:
-
行被过滤时会发生什么,他们是否得到一个类来检查。比如 .invisible,.filtered。还是从 dom 中完全删除过滤的项目?
-
它们可能会,但由于它们在 Firebug 的 DOM 面板中不再可见,因此很难回答。我猜我可以使用
var rows = $("#myTable").dataTable().fnGetNodes();之类的东西,但我正在努力让它正常工作。 -
我认为这些行并没有被完全删除,因为删除过滤器字符串会恢复隐藏的行。
标签: jquery datatables datatables-1.10