table.row不是一个函数

时间:2014-09-02 06:38:13

标签: jquery datatables jquery-datatables

我正在尝试在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网站上)。

我被困了......任何人都知道我为什么会收到这个错误?

非常感谢

5 个答案:

答案 0 :(得分:119)

我不知道dataTableDataTable函数之间有什么区别,但是当我使用第二个函数初始化数据表时,您的代码才有效。

 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({ ...