动态显示/隐藏列

此示例显示如何使用 column().visible() API 方法动态显示和隐藏表中的列。此处还包括滚动,仅展示使用此 API 方法启用该功能,虽然此功能对于 API 函数运行并非必需。

此外,可以使用 columns() 方法选择多个列,然后使用 columns().visible() 方法设置其状态,从而同时显示和隐藏多组列。

如果您正在寻找更全面的列可见性交互控件,DataTables 的 按钮扩展 提供了列可见性控制的综合模块。

切换列:姓名 - 职位 - 办公室 - 年龄 - 开始日期 - 工资
姓名 职位 办公室 年龄 开始日期 工资
老虎尼克松 系统架构师 爱丁堡 61 2011-04-25 $320,800
加勒特温特斯 会计 东京 63 2011-07-25 $170,750
阿什顿考克斯 初级技术作者 旧金山 66 2009-01-12 $86,000
塞德里克凯利 高级 JavaScript 开发人员 爱丁堡 22 2012-03-29 $433,060
艾丽萨藤 会计 东京 33 2008-11-28 $162,700
布里尔威廉姆森 集成专家 纽约 61 2012-12-02 $372,000
赫罗德钱德勒 销售助理 旧金山 59 2012-08-06 $137,500
罗娜戴维森 集成专家 东京 55 2010-10-14 $327,900
科琳赫斯特 JavaScript 开发人员 旧金山 39 2009-09-15 $205,500
索尼娅弗罗斯特 软件工程师 爱丁堡 23 2008-12-13 $103,600
杰娜盖恩斯 办公室经理 伦敦 30 2008-12-19 $90,560
奎因弗林 支持负责人 爱丁堡 22 2013-03-03 $342,000
查德马歇尔 区域总监 旧金山 36 2008-10-16 $470,600
海莉肯尼迪 高级市场设计师 伦敦 43 2012-12-18 $313,500
塔蒂亚娜菲茨帕特里克 区域总监 伦敦 19 2010-03-17 $385,750
迈克尔席尔瓦 市场设计师 伦敦 66 2012-11-27 $198,500
保罗伯德 首席财务官 (CFO) 纽约 64 2010-06-09 $725,000
格洛丽娅利特尔 系统管理员 纽约 59 2009-04-10 $237,500
布拉德利格里尔 软件工程师 伦敦 41 2012-10-13 $132,000
戴里奥斯 人事负责人 爱丁堡 35 2012-09-26 $217,500
珍妮特考德威尔 开发负责人 纽约 30 2011-09-03 $345,000
尤里贝瑞 首席营销官 (CMO) 纽约 40 2009-06-25 $675,000
凯撒万斯 售前支持 纽约 21 2011-12-12 $106,450
多丽丝怀尔德 销售助理 悉尼 23 2010-09-20 $85,600
安吉丽卡拉莫斯 首席执行官 (CEO) 伦敦 47 2009-10-09 $1,200,000
加文乔伊斯 开发者 爱丁堡 42 2010-12-22 $92,575
詹妮弗张 区域总监 新加坡 28 2010-11-14 $357,650
布伦登瓦格纳 软件工程师 旧金山 28 2011-06-07 $206,850
菲奥娜格林 首席运营官 (COO) 旧金山 48 2010-03-11 $850,000
Shou Itou 区域营销 东京 20 2011-08-14 $163,000
米歇尔豪斯 集成专家 悉尼 37 2011-06-02 $95,400
苏姬伯克斯 开发者 伦敦 53 2009-10-22 $114,500
普雷斯科特巴特利特 技术作者 伦敦 27 2011-05-07 $145,000
加文科尔特斯 团队负责人 旧金山 22 2008-10-26 $235,500
玛丹娜麦科雷 售后支持 爱丁堡 46 2011-03-09 $324,050
统一巴特勒 市场设计师 旧金山 47 2009-12-09 $85,675
霍华德哈特菲尔德 办公室经理 旧金山 51 2008-12-16 $164,500
霍普富恩特斯 秘书 旧金山 41 2010-02-12 $109,850
维维安哈雷尔 财务总监 旧金山 62 2009-02-14 $452,500
Timothy Mooney 办公室经理 伦敦 37 2008-12-11 $136,200
杰克逊·布拉德肖 主管 纽约 65 2008-09-26 $645,750
Olivia Liang 支持工程师 新加坡 64 2011-02-03 $234,500
布鲁诺·纳什 软件工程师 伦敦 38 2011-05-03 $163,500
Sakura Yamamoto 支持工程师 东京 37 2009-08-19 $139,575
Thor Walton 开发者 纽约 61 2013-08-11 $98,540
Finn Camacho 支持工程师 旧金山 47 2009-07-07 $87,500
Serge Baldwin 数据协调员 新加坡 64 2012-04-09 $138,575
Zenaida Frank 软件工程师 纽约 63 2010-01-04 $125,250
Zorita Serrano 软件工程师 旧金山 56 2012-06-01 $115,000
Jennifer Acosta 初级 Javascript 开发人员 爱丁堡 43 2013-02-01 $75,650
Cara Stevens 销售助理 纽约 46 2011-12-06 $145,600
Hermione Butler 区域总监 伦敦 47 2011-03-21 $356,250
Lael Greer 系统管理员 伦敦 21 2009-02-27 $103,500
Jonas Alexander 开发者 旧金山 30 2010-07-14 $86,500
Shad Decker 区域总监 爱丁堡 51 2008-11-13 $183,000
Michael Bruce JavaScript 开发人员 新加坡 29 2011-06-27 $183,000
Donna Snider 客户支持 纽约 27 2011-01-25 $112,000
姓名 职位 办公室 年龄 开始日期 工资
  • Javascript
  • HTML
  • CSS
  • Ajax
  • 服务器端脚本
  • 注释

下方所示的 Javascript 用来初始化此示例中显示的表格

var table = $('#example').DataTable({ paging: false, scrollY: '200px' }); $('a.toggle-vis').on('click', function (e) { e.preventDefault(); // 获取列 API 对象 var column = table.column($(this).attr('data-column')); // 切换可见性 column.visible(!column.visible()); });
const table = new DataTable('#example', { paging: false, scrollY: '200px' }); document.querySelectorAll('a.toggle-vis').forEach((el) => { el.addEventListener('click', function (e) { e.preventDefault(); let columnIdx = e.target.getAttribute('data-column'); let column = table.column(columnIdx); // 切换可见性 column.visible(!column.visible()); }); });

除了上述代码之外,还加载了以下 Javascript 库文件供此示例使用

    下方显示的 HTML 是原始 HTML 表格元素,在 DataTables 增强它之前

    此示例使用了一些额外的 CSS,超出库文件中加载的内容(如下),以正确显示表格。所使用额外的 CSS 如下所示

    以下 CSS 库文件被加载供此示例使用,以提供表格的样式

      此表格通过 Ajax 加载数据。以下显示最新已加载的数据。将自动更新此数据,因为任何额外数据都会被加载。

      以下显示执行此表格服务器端处理所使用的脚本。请注意,这只是使用 PHP 的一个示例脚本。服务器端处理脚本可以用任何语言编写,使用 DataTables 文档中描述的协议

      其他示例