我目前正在使用Datatables显示三列,其中包含不同数量的信息行。
设置该表以便在单击列标题时对表进行排序以引用该列。我试图使用fnGetData来获取现在已排序的可见数据。但是,我的尝试只返回表初始化的原始数据。
这大致是代码的样子:
$("#example").click(function() {
oTable = $('#' + tableName).dataTable();
var secondCellArray=[];
$.each( oTable.fnGetData(), function(i, row){
secondCellArray.push( row[0],row[1],row[2]);
})
console.log( secondCellArray)
});
答案 0 :(得分:-1)
fnGetData
方法是正确的(对于Datatables版本< = 1.10)提取数据的方法:
http://legacy.datatables.net/api#fnGetData
根据该文件,该功能将:
获取整个表格,单个行或个人的数据 单元格基于提供的参数。
以下是该文档的一个示例:
oTable = $('#example').dataTable();
oTable.$('tr').click( function () {
var data = oTable.fnGetData( this );
// ... do something with the array / object of data for the row
});
注意:我的原始答案提到使用fnGetData
没有参数(很久以前对我有用),文档建议应该仍然有用(“整个表的数据”),但是该答案得到了落实,文档没有具体提供其使用示例,我将避免建议以这种方式使用它。
当然,旧的Datatables有点糟糕,所以很有可能(除非你有很多基于旧Datables构建的代码),你最好的选择是升级到最新版本(或完全升级到另一个表/网格库) )。
答案 1 :(得分:-1)
下划线(_)方法在这里特别有用。它过去对我很有用。它将返回一个对象数组。
oTable._('tr', {"filter":"applied"});