我正在使用DataTable 1.10.9(来自https://datatables.net)。数据表的列在javascript的初始化步骤中定义,每列都有唯一的名称,例如:
var table = $('#example').DataTable({
columns: [
{ name: 'first-name' },
{ name: 'last-name' },
{ name: 'position' },
{ name: 'location' },
{ name: 'salary' }
]
});
我知道我可以通过我给它的名字从表中获取列,但我似乎无法找到如何从列对象中找到列的名称。 (我希望它可以用于组件的当前状态。)例如:
table.columns().every(function() {
//I'd want to see what the name of this column is, something like:
console.log(this.name()); //will throw an exception since no such function exists
//or
console.log(this.name); //will output 'undefined'
});
获得该名称的正确功能或属性是什么?
答案 0 :(得分:43)
您可以通过table.settings().init()
检索初始化选项 - 并以此方式检索columns
定义:
var columns = table.settings().init().columns;
单击单元格/ <td>
时,您可以找到列索引(隐藏列的最佳做法):
var colIndex = table.cell(this).index().column;
点击处理程序的一个示例,用于在单击单元格时警告相应的column.name
$("#example").on('click', 'td', function() {
//get the initialization options
var columns = table.settings().init().columns;
//get the index of the clicked cell
var colIndex = table.cell(this).index().column;
alert('you clicked on the column with the name '+columns[colIndex].name);
})
您的every()
示例
var columns = table.settings().init().columns;
table.columns().every(function(index) {
console.log(columns[index].name);
})
演示 - &gt;的 http://jsfiddle.net/6fstLmb6/ 强>
答案 1 :(得分:0)
根据API document:
,以下内容适合您var tableColumns = [{
name: 'first-name'
}, {
name: 'last-name'
}, {
name: 'position'
}, {
name: 'location'
}, {
name: 'salary'
}]
var table = $('#example').DataTable({
tableColumns
});
table.columns().every(function (index) {
console.log(tableColumns[index].name);
});
答案 2 :(得分:0)
您可以尝试使用另一种方法。 “ index ”变量是 thead 的一列。此方法将获取表的thead列,并读取标记中的文本。
dataTable.column(index).header().textContent
答案 3 :(得分:0)
下面的代码对我有用
this.api().columns().every(function() {
console.log( this.header().textContent )
})
您也可以为特定的列名添加特定的 html 类,例如拥有该类
this.api().columns(".myColumnClass").every(function() {
console.log( this.header().textContent )
})
答案 4 :(得分:-2)
Documentation显示columns().every()
将this
设置为当前列的column()
对象。对列对象的进一步检查表明它具有column().data()
方法,该方法将列包含的数据作为值数组返回。这应该提供您需要的数据。