DataTable获取tr的数据

Posted

技术标签:

【中文标题】DataTable获取tr的数据【英文标题】:DataTable get data of tr 【发布时间】:2014-08-06 17:47:57 【问题描述】:

我已经用 dataTable jQuery 插件建立了一个表格。 我正在尝试通过单击该 tr 来获取 tr 元素的 td 数据。 我已经阅读了说明我必须使用“fnGetData”的文档,但是当我尝试这样做时,我得到了错误:

TypeError: table.fnGetData 不是函数

var data = table.fnGetData(this);

我的js代码:

 $('#customerTable tbody').on('click','tr', function()
    var data = table.fnGetData( this );
    alert(data);
);

我的DataTable初始化如下,在没有点击事件的情况下运行良好:

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

我是否必须在我的 html head 部分中绑定另一个插件脚本?

问候。

【问题讨论】:

我现在不能测试,但是为什么不直接在tr上绑定click呢? 您能否提供一些示例代码,我不太明白您所说的“首先直接在 tr 上”是什么意思。问候编辑:我认为使用 dataTable 的方法来访问数据会很好。当然,我可以使用“纯 jquery”构建解决方法,但我认为使用 fnGetData 的 dataTable 方法更好。 好的,我刚刚发现我必须使用来自 dataTables 的特殊插件。在他们的文档中没有很好地描述: 是的,他们的文档很垃圾 是的,他们想通过购买支持来赚钱.. 没关系,感谢您的关注帮助:) 【参考方案1】:

API 数据表提供的是否使用DataTable(..)dataTable(..) 进行初始化似乎有所不同。差异可见here。

由于您使用较新的 API 对其进行了初始化,因此您应该改为在侦听器中使用。

var data = table.row( this.rowIndex-1 ).data();

Example

如果您使用dataTable(..) 来初始化您的表,那么您发布的代码应该可以工作。

Example

【讨论】:

如果数据已经重新排序,这可能会返回错误的行

以上是关于DataTable获取tr的数据的主要内容,如果未能解决你的问题,请参考以下文章

datatable编辑一行数据的方法

jquery datatable ajax 获取数据/重新加载

datatable的点击事件

减少dataTable tr高度

获取datatable的值

如何获取datatable的某个值?