Datatables 如何使用数据表+;选择分机

Datatables 如何使用数据表+;选择分机,datatables,Datatables,我使用select扩展名并尝试使用所选行的id发出“警报” 以下代码失败: let sels = jqTable.api().rows({ selected: true }); let st = ''; sels.each(function (value, index) { st += ',' + sels.row(value).id(); }); alert(st); 独立于所选行调用该函数一次: 0行:value=[],index=0 >=1:value=[0,2],index=

我使用select扩展名并尝试使用所选行的id发出“警报”

以下代码失败:

let sels = jqTable.api().rows({ selected: true });
let st = '';
sels.each(function (value, index) {
    st += ',' + sels.row(value).id();
});
alert(st);
独立于所选行调用该函数一次:

  • 0行:
    value=[],index=0
  • >=1:
    value=[0,2],index=0
以下代码成功执行:

let sels = jqTable.api().rows({ selected: true });
let st = '';
for (let i = 0; i < sels.count(); i++) {
    st += ',' + sels.row(sels[0][i]).id();
}
alert(st);
但是使用它取消了数据表配置中
rowId:'IdFile'
的优点。

当数据集返回API对象中的结果数组时使用,如果不是这样,则返回单个结果,该结果恰好是包含所选行的rowId的数组

第一个代码块失败,因为只有一次迭代(结果是单个数组)

您的第二个块可以工作,因为您正在迭代单个数组(
sels[0]

第三个也可以工作,因为生成了一个包含所有选定行的数据的数组

希望这会有所帮助

sels.data().each(function (value, index) {
    st += ',' + value.IdFile;
});