独立列搜索(选择输入)

这个示例与基于文本的独立列示例几乎相同,并且提供了相同的功能,但此处使用 select 输入控件。

在表格初始化后,API 用于构建 select 输入,通过使用 columns().every() 来遍历列(如果需要,还可以使用 columns() 选择器来限制所选的列),然后使用 column().data() 方法来按次序获取每一列的数据。辅助方法 unique()sort() 也用于将设置输入的数据减少为唯一而有序的元素。最后,来自 select 输入的 change 事件用于通过 column().search() 方法触发列搜索。

请注意,column().search() 方法在此特定情况下通过可用作 DataTables.SearchOptions 对象一部分的 exact 选项执行精确匹配,可用该对象来配置 DataTable 搜索的操作方式。

还要注意,此示例演示了使用 initComplete,当表已完全加载时触发回调函数。在这个示例中不需要使用此回调,因为数据在加载时在表中可用,但在 Ajax 加载数据的情况下,initComplete 在数据已加载后执行代码时很有用。

姓名 岗位 部门 年龄 入职时间 工资
虎尼克森 系统架构师 爱丁堡 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
Gavin Joyce 开发人员 爱丁堡 42 2010-12-22 $92,575
Jennifer Chang 区域主管 新加坡 28 2010-11-14 $357,650
Brenden Wagner 软件工程师 旧金山 28 2011-06-07 $206,850
Fiona Green 首席运营官 (COO) 旧金山 48 2010-03-11 $850,000
Shou Itou 区域营销 东京 20 2011-08-14 $163,000
Michelle House 集成专家 悉尼 37 2011-06-02 $95,400
Suki Burks 开发人员 伦敦 53 2009-10-22 $114,500
Prescott Bartlett 技术作者 伦敦 27 2011-05-07 $145,000
Gavin Cortez 团队主管 旧金山 22 2008-10-26 $235,500
Martena Mccray 售后支持 爱丁堡 46 2011-03-09 $324,050
Unity Butler 营销设计师 旧金山 47 2009-12-09 $85,675
Howard Hatfield 办公室经理 旧金山 51 2008-12-16 $164,500
Hope Fuentes 秘书 旧金山 41 2010-02-12 $109,850
Vivian Harrell 财务总监 旧金山 62 2009-02-14 $452,500
Timothy Mooney 办公室经理 伦敦 37 2008-12-11 $136,200
Jackson Bradshaw 董事 纽约 65 2008-09-26 $645,750
Olivia Liang 支持工程师 新加坡 64 2011-02-03 $234,500
Bruno Nash 软件工程师 伦敦 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 用于初始化此示例中显示的表

$('#example').DataTable({ initComplete: function () { this.api() .columns() .every(function () { var column = this; // 创建 select 元素和监听器 var select = $('<select><option value=""></option></select>') .appendTo($(column.footer()).empty()) .on('change', function () { column .search($(this).val(), {exact: true}) .draw(); }); // 添加选项 column .data() .unique() .sort() .each(function (d, j) { select.append( '<option value="' + d + '">' + d + '</option>' ); }); }); } });
new DataTable('#example', { initComplete: function () { this.api() .columns() .every(function () { let column = this; // 创建 select 元素 let select = document.createElement('select'); select.add(new Option('')); column.footer().replaceChildren(select); // 为用户更改值应用监听器 select.addEventListener('change', function () { column .search(select.value, {exact: true}) .draw(); }); // 添加选项 column .data() .unique() .sort() .each(function (d, j) { select.add(new Option(d)); }); }); } });

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

    下面显示的是原始 HTML 表元素,但在 DataTables 增强之前

    此示例使用了库文件(见下文)之外的一些额外 CSS,以正确显示表格。下面显示了所使用的附加 CSS

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

      该表通过 Ajax 加载数据。已加载的最新数据如下所示。此数据会随着加载任何其他数据而自动更新。

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

      其他示例