table.row不是一个函数

MaV*_*SCy 44 jquery datatables jquery-datatables

我想实现我行详细信息的数据表就是这样的例子.

当我点击显示我的表的更多图像时,我的firebug控制台中出现错误:

TypeError: oTable.row is not a function
var row = oTable.row(tr);
Run Code Online (Sandbox Code Playgroud)

这里也是一个拨弄我的代码生成此错误.

据我所知,row()找不到我的数据表的功能.但我不明白......我使用最新的数据表版本与jquery版本1.11.1(而不是1.11.0,如小提琴中所示),这也是在示例中使用的(在datatables网站上).

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

非常感谢

Kar*_*yan 127

我不知道dataTableDataTable函数之间有什么区别,但是当我使用第二个函数初始化数据表时,你的代码工作正常.

 oTable = $('#tblCasesMain').DataTable({ ...
Run Code Online (Sandbox Code Playgroud)

这是小提琴,它只给出了format未定义的函数错误.

注意:我已根据此示例更改了该函数名称.

更新: 我做了一些研究并得到了答案.请查看此处升级说明 ,其中说明如下:

如果要从DataTables 1.9或更早版本升级,您可能会注意到资本D用于在此处初始化DataTable.$().DataTable()返回一个DataTables API实例,而$().dataTable()也将初始化一个DataTable,但返回一个jQuery对象.

  • 啊! 这就是问题所在。我花了一些时间调试这个。最后,将 dataTable 更改为 DataTable 有所帮助。谢谢!! (3认同)
  • 太棒了!我只是在小写“d”上浪费了两个小时。 (2认同)

小智 45

没有必要使用.DataTable()而不是dataTable()

简单地追加.api().它将返回定义所需row()方法的对象.

例如: var row = oTable.api().row(tr);


Pra*_*tta 5

如果上述答案不适用于您的情况,请尝试以下替代方法。

var row = $('#tblSample').DataTable().row(tr);
Run Code Online (Sandbox Code Playgroud)

代替

var oTable =  $('#tblSample').dataTable( {
    //Code
 });
var row = oTable.row(tr);
Run Code Online (Sandbox Code Playgroud)