$(...).DataTable(...).rows 不是函数

Posted

技术标签:

【中文标题】$(...).DataTable(...).rows 不是函数【英文标题】:$(...).DataTable(...).rows is not a function 【发布时间】:2016-04-09 04:41:47 【问题描述】:

我在我的项目中添加了 jquery.dataTables.min.js(1.10.3 版本)为方便起见称为 js1)以使用 DataTable().rows().nodes() 函数(以及其他)并且它的工作正常。

现在,我正在尝试使用 Datatable 插件实现嵌套表,这里是 jsfiddle(在我项目的同一页面中)。

正如你在小提琴中看到的那样:

http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.0/jquery.dataTables.min.js为方便起见称为 js2

这与 js1 不同。

这两个不同的插件同时服务。 因为没有 js1 我得到这个错误:

使用 $(...).DataTable(...).rows is not a function$(...).dataTable(...).rows is not a function 我总是遇到同样的错误。

jsfiddle中没有js2嵌套表是不行的。

所以,我在我的页面中添加了两个插件。但我得到了错误(.row is not ...)呢。

查看带有错误的新jsfiddle。

【问题讨论】:

【参考方案1】:

.DataTable() 构造函数返回 1.10 中引入的新 api。

要使用旧功能,请使用.dataTable() 构造函数。

如果你需要新的api功能和旧的api功能,你可以使用.dataTable()构造函数来创建你的表对象并使用新的api,如下所示:myTable.api().whateverFunction()

【讨论】:

你能给我更多关于 myTable.api().whateverFunction() 的信息吗? 查看this answer 了解 .dataTable() 与 .DataTable() 的更详细说明。 .api() 仅在我不使用 js2 时才有效。否则我会得到“.api().. is not a function..” 是的,因为在您的情况下 js1 是数据表版本 1.10。【参考方案2】:

我在相同的版本中遇到相同的错误。

我按照以下步骤“修复”它

第 1 步

在您的网络中打开控制台

第 2 步

为你的数据表创建一个变量

例如:

    var p = $('#my_table').dataTable();

第 3 步

现在你写“p”和一个点,你就拥有了所有可用的功能。我不知道为什么,但我有不同的函数名称。我只是搜索我需要的东西。

希望能有所帮助。

【讨论】:

第三步看不懂 在控制台中,写上“p”(变量名)和一个点“p”。并且会出现所有的功能。 mmm 正在寻找解决方案我找到了这个尝试一下:$('#my_table').dataTable().DataTable().rows();

以上是关于$(...).DataTable(...).rows 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

DataTable.Rows.Find() 找不到行

复制DataTabe的Rows到另一个DataTable

复制DataTabe的Rows到另一个DataTable

.NET里面datatable.rows[i]可以直接转换为DataRow吗?是否要先new一个DataRow,然后再依次赋值?

删除datatable中的行

DataTables row.add 到特定索引