javascript - 数据表查找列名
问题描述
我在 DataTables 中使用以下代码来绘制表格:
projectRevenue = $('#projectRevenue').DataTable({
serverSide: true,
processing: true,
scrollX: true,
stateSave: true,
ajax: {
url: "...",
type: "GET",
dataType: "JSON"
},
columns: [
{ name: 'id', data: 'id' , searchable: false , visible: false },
{ name: 'year', data: 'year' , searchable: true , visible: true , className: "rev_update" },
{ name: 'product_code', data: 'product_code' , searchable: true , visible: true , className: "rev_update" },
{ name: 'jan', data: 'jan' , searchable: true , visible: true , className: "rev_update" },
{ name: 'feb', data: 'feb' , searchable: true , visible: true , className: "rev_update" },
{ name: 'mar', data: 'mar' , searchable: true , visible: true , className: "rev_update" },
{ name: 'apr', data: 'apr' , searchable: true , visible: true , className: "rev_update" },
{ name: 'may', data: 'may' , searchable: true , visible: true , className: "rev_update" },
{ name: 'jun', data: 'jun' , searchable: true , visible: true , className: "rev_update" },
{ name: 'jul', data: 'jul' , searchable: true , visible: true , className: "rev_update" },
{ name: 'aug', data: 'aug' , searchable: true , visible: true , className: "rev_update" },
{ name: 'sep', data: 'sep' , searchable: true , visible: true , className: "rev_update" },
{ name: 'oct', data: 'oct' , searchable: true , visible: true , className: "rev_update" },
{ name: 'nov', data: 'nov' , searchable: true , visible: true , className: "rev_update" },
{ name: 'dec', data: 'dec' , searchable: true , visible: true , className: "rev_update" },
...
为了能够操作数据,我使用此配置为每个 td 插入一些属性:
columnDefs: [{
"targets": [1,2,3,4,5,6,7,8,9,10,11,12,13,14],
"createdCell": function (td, cellData, rowData, row, col) {
$(td).attr('contenteditable','true');
$(td).attr('data-id',rowData.id);
}
}],
我想将列的名称添加为属性,但我无法在任何地方找到获取此数据的方法。所以我想要类似的东西:
$(td).attr('data-id',columns(this).name);
但它不起作用。
解决方案
您的尝试不成功,因为this
在您的上下文中不是您认为的那样。我想,下面的代码会给你预期的结果:
const dataTable = $('#projectRevenue').DataTable();
$(td).attr('data-id', dataTable.column(col).header().innerText)
但是,如果您希望引用源数据对象属性,您可以这样做:
const dataTable = $('#projectRevenue').DataTable();
$(td).attr('data-id', dataTable.column(col).dataSrc())
推荐阅读
- wordpress - Woocommerce + GSuite - 交易电子邮件最佳实践?任何人?
- tensorflow - 还是同样的错误,模块“tensorflow”没有属性“get_default_graph”
- vue.js - 无法调用 v-show 和 @click 与 vue.js 相同的按钮
- java - 如何验证端口是否打开
- python - Pycharm 无法连接到控制台
- javascript - 为什么我的焦点/蓝色事件监听器没有触发?
- firebase - 尝试部署时出错:工作区中未设置配置“生产”
- objective-c - Swift 构建 Linux 与 macOS
未找到 - java - 乘法表输出
- java - 我的 Netbeans 11.3 IDE 有问题