jQuery DataTables fnGetData

4

我正在使用jQuery DataTables 1.10插件。 在早期版本(1.9.4插件)中,我可以像这样从表格中获取数据:

var iPos = oTable.fnGetPosition( this );
var aData = oTable.fnGetData( iPos );

现在,使用相同的代码,我遇到了错误

TypeError: aData is null

如何使用新功能?我尝试使用oTable.row(iPos).data(),但不起作用。


datatables.net?如果没有,您能添加一个链接吗? - wazz
1个回答

7
您正在使用旧的API方法访问1.10 API。fnGetData已被弃用,正如您所看到的那样。首先,匈牙利命名法(mData,fnRedraw)已经消失了......是时候了!

新方法非常简单:

例如,从单击的单元格获取数据:

var table = $('#example').DataTable();

$('#example tbody').on( 'click', 'td', function () {
    var cellData = table.cell( this ).data();
} );

从点击的行中获取数据的示例:

var table = $('#example').DataTable();

$('#example tbody').on( 'click', 'tr', function () {
    var rowData = table.row( this ).data();
} );

这里是其他问题的API参考。您还可以从API转换指南中受益,其中您可以查找旧功能并了解其新等效项。请注意保留HTML标记。

传统函数,例如fnGetData仍然可用,例如$('#example').dataTable().fnGetData()。 - Gyrocode.com
从可维护性的角度来看,使用旧 API 写新代码毫无意义。当您需要去网站寻求支持时,会发现所有文档都已经被淹没,这只会让您更加困惑。对于 1.10 版本,您是正确的,仍可以使用旧的 API。但未来并不保证。同样也有一些函数不再支持,例如 fnRender。 - bpeterson76
我同意你关于使用弃用函数的观点,但我的观点是,当你表达相反的意见时,它们仍然可用。可能有其他原因导致 fnGetData 对 OP 无效。 - Gyrocode.com
你所使用的 .dataTable 和他所使用的 .DataTable 之间有所不同。由于我没有使用遗留 API,我需要深入了解哪个方法可用,但这是 OP 需要检查的事情。 - bpeterson76

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接