在表格的某些列添加筛选器有助于数据分析,在生物数据里这个功能尤其重要。今天在项目的基因表达数据表实现了这个功能。
使用 DataTables 自带例子
DataTables 是特别实用的 jQuery 表格插件,官方文档介绍了添加列筛选器的方式(详见 https://www.datatables.net/release-datatables/examples/api/multi_filter_select.html):
| 1 | $(document).ready(function() { | 
其原理是在表格的 <tfoot> 标签里放置 <select> 并添加 search 功能,实际使用时给 <tfoot> 加入样式 display: table-header-group 即可满足需求。
效果图:
 
手写实现前置的 tfoot 标签
经过测试,Chrome、Firefox 正常显示预期效果,然而 IE 和 EDGE 浏览器始终把 <tfoot> 标签放置于 <tbody> 下面 (╯°Д°)╯︵ ┻━┻ 接着花了很长时间 google 也没找到解决方法,面对硬性的需求,只好硬着头皮尝试。
具体做法:
- 在 <thead>标签里新建一个<tr>标签。
- 构建 DataTables 后调换 <thead>把新建的标签提前。
- 手动处理 DataTables的 column visibility 设置。
| 1 | generateIETfoot('table2'); |