如何返回所有列名/标题(并避免“TypeError:table.columns(…)。name不是函数”)?
我对这个问题有一个非常类似的问题。
我创建一个数据表,然后用户可以使用搜索function,单击一个按钮,然后所选数据将被发送到另一个function,在那里进一步处理。 初始化表工作正常,同时发送所选数据按预期工作 。 但是,我无法正确访问列名称。
这是我使用的数据表版本:
一点背景:通过单击链接( #calculate
),创建一个表,列标题看起来很好,例如:
然后,用户可以选择条目(这里是88
),然后使用第二链接( #send_data
)发回过滤后的数据。 用于初始化列标题的数据如下所示(取自console.log(data.columns);
):
[…] 0: Object { name: "C1", title: "C1", sName: "C1", … } 1: Object { name: "C2", title: "C2", sName: "C2", … } length: 2 __proto__: Array []
我也可以访问table.columns()
,但是,当我尝试table.columns().names()
或table.columns().title()
我收到
TypeError:table.columns(…)。names不是函数。
如何访问和传递显示的列标题,即下面的代码中的col_names
是什么?
相关代码如下:
$(document).ready(function() { var table = null; $('#calculate').bind('click', function() { $.getJSON('/_get_table', { a: $('#a').val(), b: $('#b').val() }, function(data) { console.log(data.columns); $("#elements").text(data.number_elements); if (table !== null) { table.destroy(); table = null; $("#a_nice_table").empty(); } table = $("#a_nice_table").DataTable({ data: data.my_table, columns: data.columns }); }); return false; }); $('#send_data').bind('click', function() { //console.log(table.columns()); //console.log(table.columns().title()); //console.log(table.columns().names()); $.getJSON('/_selected_data', { sel_data: JSON.stringify(table.rows( { filter : 'applied'} ).data().toArray()), col_names: //what goes here? }, function(data) { alert('This worked') }); return false; }); });
这是一个可能的解决方案:
table.columns().header().toArray().map(x => x.innerText)
我使用了DataTable的API文档。 用innerHTML
替换innerText
也有效。
从HTML表中提取表头看起来有点像hackish; 根据你的代码,我认为你可以做这样的事情; 在初始化表变量的部分,只需添加一行以保留您获得的JSON数据中的列列表:
table = $("#a_nice_table").DataTable({ data: data.my_table, columns: data.columns }); table.columns = data.columns; // dynamically add a property, store columns
然后你应该能够做到:
col_names: JSON.stringify(table.columns)
或者它的一些变体,具体取决于data.columns
包含的数据结构data.columns
(如果它是一个简单的数组,它应该可以正常工作)。
- 如何在服务器端处理模式下使用JOIN进行数据库查询
- 按钮点击调用datatable
- 在同一数据集中具有父子关系的JQuery Datatable。 如何在表中将其显示为父子行?
- 如何在jquery数据表中对多个列进行分组
- 如何向表头添加工具提示
- 列式搜索给出“227200:101 Uncaught TypeError:otable.api()。列不是函数”JQuery dataTable中的错误
- 显示记录“全部”时启用数据表分页“下一步”。如何禁用它?
- jQuery DataTables:我可以为Sort提供3种状态:ASC,DESC和NO_SORT吗?
- jQuery插件DataTables:如何突出显示当前搜索文本?