You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取动态创建列的jQuery DataTable的列名?

解决jQuery DataTable动态列名获取问题

你可以通过遍历dt.columns().header()返回的表头元素集合,轻松提取列名,以下是两种实用方案:

方案1:提取表头显示文本(适配动态生成列)

这是最直接的方式,因为你是基于SQL表动态生成列,表头文本就是对应的列名:

text: 'Save',
action: function (e, dt, node, config) {
  var json = JSON.stringify(dt.rows().data().toArray());
  // 获取所有列名并转为数组
  var columnNames = dt.columns().header().map(function(headerEl) {
    // 用jQuery获取表头文本并去除首尾空格
    return $(headerEl).text().trim();
  }).toArray();
  
  // 现在columnNames就是所有列名的数组,可按需使用
  console.log(columnNames);
}

方案2:提取列定义中的name属性(若初始化时配置)

如果你的DataTable在动态创建列时给每列指定了name属性(比如和SQL列名绑定),可以直接从列配置中读取:

text: 'Save',
action: function (e, dt, node, config) {
  var json = JSON.stringify(dt.rows().data().toArray());
  var columnNames = dt.columns().map(function(colIdx) {
    // 从列配置中获取name属性
    return dt.column(colIdx).settings()[0].aoColumns[colIdx].name;
  }).toArray();
  
  console.log(columnNames);
}

说明

dt.columns().header()返回的是包含所有表头<th>元素的jQuery对象,通过.map()遍历每个元素,再用text()提取显示内容即可得到列名。第一种方案完全适配你从SQL动态生成列的场景,无需额外配置。

内容的提问来源于stack exchange,提问作者Eray Balkanli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 06:42:46