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

如何使用DataTables实现嵌套表格全局搜索同时过滤所有层级内容

解决方案

核心调整思路

  • 移除嵌套表格的搜索框:修改嵌套表初始化的dom配置,去掉搜索框对应的f参数
  • 同步全局搜索逻辑:监听主表格的搜索事件,将搜索关键词同步传递给所有嵌套表格执行过滤

完整调整后代码

<!-- 原有表格结构不需要修改 -->
<table id="example">
    <thead>
        <tr>
            <td>Col A</td>
            <td>Col B</td>
            <td>Col C</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td valign="top">
                <table>
                    <tr>
                        <td>Data</td>
                        <td>Data2</td>
                    </tr>
                </table>
            </td>
            <td valign="top">
                <table>
                    <tr>
                        <td>Data3</td>
                        <td>Data4</td>
                    </tr>
                </table>
            </td>
            <td valign="top">
                <table>
                    <tr>
                        <td>Data5</td>
                        <td>Data6</td>
                    </tr>
                </table>
            </td>
        </tr>
    </tbody>
</table>

<script type="text/javascript">
    const columns = [
      { title: '' },
    ]
    // 存储所有嵌套表格的DataTables实例
    let nestedTables = []

    let table = $('#example').DataTable({
      createdRow: function(row) {
        $(row).find('td table').each(function() {
          const nestedTable = $(this).DataTable({
            columns: columns,
            // 移除f参数,仅保留表格本身,隐藏搜索框
            dom: 't'
          })
          nestedTables.push(nestedTable)
        })
      }
    })

    // 监听主表格搜索事件,同步关键词到所有嵌套表格
    table.on('search.dt', function() {
      // 获取主表格当前搜索关键词
      const keyword = table.search()
      // 遍历所有嵌套表执行同步搜索
      nestedTables.forEach(nestedTable => {
        nestedTable.search(keyword).draw()
      })
    })
</script>

效果说明

当你在主表格的全局搜索框输入关键词时,所有嵌套表格会自动使用相同关键词执行过滤,无匹配内容的嵌套表格会展示为空,完全符合预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:45:08