我正在尝试在datatables中实现行详细信息,就像这样example。
当我点击显示我的表格的更多图像时,我在我的firebug控制台中收到错误说:
TypeError: oTable.row is not a function
var row = oTable.row(tr);
以下是我的代码的fiddle,会产生此错误。
据我了解,找不到我的数据表的row()
函数。但是我没有得到它...我使用最新的数据表版本和jquery版本1.11.1(而不是1.11.0,如小提琴中所示),这也是示例中使用的(在datatables网站上)。
我被困了......任何人都知道我为什么会收到这个错误?
非常感谢
答案 0 :(得分:119)
我不知道dataTable
和DataTable
函数之间有什么区别,但是当我使用第二个函数初始化数据表时,您的代码才有效。
oTable = $('#tblCasesMain').DataTable({ ...
以下是fiddle,它仅对未定义的format
函数给出错误。
注意:我已根据this example更改了该功能名称。
<强>更新强> 我做了一些研究并得到了答案。请查看升级说明 here,其中包含以下内容:
如果要从DataTables 1.9或更早版本升级,您可能会注意到资本D用于在此处初始化DataTable。 $()。DataTable()返回 DataTables API实例 ,而 $()。dataTable()也会初始化DataTable,但返回 jQuery对象。
答案 1 :(得分:44)
无需使用.DataTable()
代替dataTable()
只需附加.api()
即可。它将返回定义所需row()
方法的对象。
例如:var row = oTable.api().row(tr);
答案 2 :(得分:3)
这是因为你没有提到Function
检查更新工作链接http://jsfiddle.net/2gLqgL7m/7/
答案 3 :(得分:1)
如果上述答案在您的情况下不起作用,请尝试以下备用。
var row = $('#tblSample').DataTable().row(tr);
而不是
var oTable = $('#tblSample').dataTable( {
//Code
});
var row = oTable.row(tr);
答案 4 :(得分:0)
更新dataTable()
,DataTable()
无需使用.dataTable()
使用.DataTable()
示例:
oTable = jQuery('#tblCasesMain').DataTable({ ...