
本文介绍如何通过一行核心代码 table.search('').columns().search('').draw(),一键清空 datatables 的全局搜索框和所有列的下拉筛选器,实现真正的“重置所有筛选条件”。
在使用 DataTables 构建带级联下拉筛选(如姓名、职位、部门)的表格时,仅清空 DOM 中的
正确做法是在“清除筛选”按钮点击事件中,同时清除全局搜索 + 所有列的独立搜索条件,并触发重绘:
$('#test').on('click', function() {
table.search('').columns().search('').draw();
});✅ table.search(''):清空顶部全局搜索输入框的过滤状态;
✅ columns().search(''):遍历所有列,清除每列的正则/精确匹配搜索值(包括你用 ^value$ 设置的下拉筛选);
✅ .draw():强制重新渲染表格,使清除操作立即生效。
⚠️ 注意事项:
- 该方法不会自动重置
- 若你的 buildSelect() 函数依赖 column.search() 恢复选中项(如原代码中 select.val(...)),则 columns().search('') 已确保 column.search() 返回空字符串,后续 draw 触发的 buildSelect() 将自然渲染空白下拉框。
- 不要仅调用 table.clear().draw() —— 它清空的是表格数据(),而非筛选器!
总结:table.search('').columns().search('').draw() 是 DataTables 官方推荐的“软重置筛选”标准写法,简洁、高效、兼容性强,适用于所有基于 search() 实现的列筛选场景。










