【发布时间】:2017-07-28 05:49:23
【问题描述】:
我有一个数据表,我试图在其中获取所有已检查的行。该表具有行分组并使用来自gyrocode 的复选框插件。我已经尝试了api 上列出的代码,但我没有运气。无论选择什么,我都只会返回第一条记录。我使用的代码如下所示:
var tbl;
$(document).ready(function (){
tbl = $('#example').DataTable({
columnDefs: [{
targets: 0,
data: 2,
'checkboxes': {
'selectRow': true
}
},
{ "visible": false, "targets": 1 }],
select: {
style: 'multi'
},
order: [[1, 'asc']],
iDisplayLength: 10,
drawCallback: function () {
var api = this.api();
var rows = api.rows({ page: 'current' }).nodes();
var last = null;
api.column(1, { page: 'current' }).data().each(function (group, i) {
if (last !== group) {
$(rows).eq(i).before(
'<tr class="group"><td colspan="6">' + group + '</td></tr>'
);
last = group;
}
});
}
});
});
function getSelected(){
alert(tbl.columns().checkboxes.selected().length);
}
我的jfiddle 中有代码。我不确定它们是否是复选框和行分组之间的干扰?请让我知道我哪里出错了。
注意:复选框是基于 gyrocode 插件的数据表是 1.10.12 版本
【问题讨论】:
-
那是什么问题?你的问题不是很清楚
-
它似乎确实有效,如果您执行
console.log(tbl.columns().checkboxes.selected()),您可以看到有一个数组包含唯一的选定学生ID。如果您每行使用不同的 ID,我可以看到它在工作。length属性不是您想要的。 -
您需要改用
column(0).checkboxes.selected()。此外,您在表中有重复的 id,这会影响总数。 -
也可以。谢谢你的澄清。
标签: javascript jquery checkbox datatables