Ann*_*a T 21 javascript jquery datatables
我正在使用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' }
]
});
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过我给它的名字从表中获取列,但我似乎无法找到如何从列对象中找到列的名称.(我希望可以使用组件的当前状态.)例如:
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'
});
Run Code Online (Sandbox Code Playgroud)
获得这个名字的正确功能或属性是什么?
dav*_*rad 48
您可以检索通过初始化选项table.settings().init()
-由该columns
定义是这样的:
var columns = table.settings().init().columns;
Run Code Online (Sandbox Code Playgroud)
单击单元格/ <td>
您可以找到列索引(隐藏列的最佳实践):
var colIndex = table.cell(this).index().column;
Run Code Online (Sandbox Code Playgroud)
单击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);
})
Run Code Online (Sandbox Code Playgroud)
你的every()
例子就是
var columns = table.settings().init().columns;
table.columns().every(function(index) {
console.log(columns[index].name);
})
Run Code Online (Sandbox Code Playgroud)
演示 - > http://jsfiddle.net/6fstLmb6/
小智 5
下面的代码对我有用
this.api().columns().every(function() {
console.log( this.header().textContent )
})
Run Code Online (Sandbox Code Playgroud)
您还可以仅为特定的列名称添加特定的 html 类,例如拥有该类
this.api().columns(".myColumnClass").every(function() {
console.log( this.header().textContent )
})
Run Code Online (Sandbox Code Playgroud)