导读:本期聚焦于小伙伴创作的《如何使用jQuery实现HTML表格动态筛选功能》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何使用jQuery实现HTML表格动态筛选功能》有用,将其分享出去将是对创作者最好的鼓励。

在网页数据展示场景中,表格是非常常用的组件,当表格数据量较大时,用户查找特定内容会变得很麻烦,这时候给表格添加动态筛选功能就能大幅提升使用体验。下面我们就一步步学习如何用jQuery实现HTML表格的动态筛选功能。

如何使用jQuery实现HTML表格动态筛选功能

实现前准备

首先我们需要有一个基础的HTML表格结构,同时引入jQuery库,这里我们使用CDN引入的方式,你也可以下载本地文件引入。下面是基础的页面结构代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>jQuery表格动态筛选示例</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <style>
        .filter-input {
            margin-bottom: 10px;
            padding: 5px;
            width: 200px;
        }
        table {
            border-collapse: collapse;
            width: 100%;
        }
        th, td {
            border: 1px solid #ccc;
            padding: 8px;
            text-align: left;
        }
        th {
            background-color: #f5f5f5;
        }
        .hidden {
            display: none;
        }
    </style>
</head>
<body>
    <!-- 筛选输入框 -->
    <input type="text" class="filter-input" placeholder="输入关键词筛选表格内容">
    <!-- 目标表格 -->
    <table id="data-table">
        <thead>
            <tr>
                <th>姓名</th>
                <th>年龄</th>
                <th>城市</th>
                <th>职业</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>张三</td>
                <td>25</td>
                <td>北京</td>
                <td>前端开发</td>
            </tr>
            <tr>
                <td>李四</td>
                <td>30</td>
                <td>上海</td>
                <td>后端开发</td>
            </tr>
            <tr>
                <td>王五</td>
                <td>22</td>
                <td>广州</td>
                <td>UI设计</td>
            </tr>
            <tr>
                <td>赵六</td>
                <td>28</td>
                <td>深圳</td>
                <td>测试工程师</td>
            </tr>
        </tbody>
    </table>
</body>
</html>

核心实现逻辑

动态筛选的核心思路是监听输入框的输入事件,每次输入内容变化时,遍历表格的所有行,检查行内是否包含输入的关键词,包含则显示,不包含则隐藏。具体步骤如下:

  • 给筛选输入框绑定input事件,实时监听输入内容变化
  • 获取输入框的当前值,转为小写方便做不区分大小写的匹配
  • 遍历表格的<tbody>下的所有<tr>
  • 对每一行,检查其所有<td>单元格的文本内容是否包含关键词
  • 根据匹配结果切换行的显示或隐藏状态

完整jQuery代码实现

把下面的代码放在页面的<script>标签中,或者单独的js文件中引入即可:

$(function() {
    // 监听筛选输入框的输入事件
    $('.filter-input').on('input', function() {
        // 获取输入的关键词,转小写处理,去除首尾空格
        var keyword = $(this).val().trim().toLowerCase();
        // 如果关键词为空,显示所有行
        if (keyword === '') {
            $('#data-table tbody tr').removeClass('hidden');
            return;
        }
        // 遍历表格的所有数据行
        $('#data-table tbody tr').each(function() {
            var $row = $(this);
            var rowText = '';
            // 拼接当前行所有单元格的文本内容
            $row.find('td').each(function() {
                rowText += $(this).text().toLowerCase();
            });
            // 判断是否包含关键词,不包含则添加隐藏类
            if (rowText.indexOf(keyword) === -1) {
                $row.addClass('hidden');
            } else {
                $row.removeClass('hidden');
            }
        });
    });
});

代码解析

上面的代码中,我们使用$(function() {})确保DOM加载完成后再执行脚本,避免找不到元素的问题。输入框的input事件会在用户输入、删除、粘贴等操作时触发,保证筛选实时生效。

遍历行的时候,我们把一行的所有单元格文本拼接起来统一判断,而不是逐个单元格判断,这样可以实现只要行内任意单元格包含关键词就显示该行的效果,更符合用户的筛选预期。如果只需要匹配特定列,可以修改单元格选择的逻辑,比如只匹配姓名列就改成$row.find('td:first')即可。

扩展优化建议

如果需要更灵活的筛选功能,还可以做以下扩展:

  • 给不同列添加单独的筛选输入框,实现多条件组合筛选
  • 添加筛选结果计数,显示当前匹配到的行数
  • 支持正则表达式筛选,满足更复杂的匹配需求
  • 给匹配到的关键词添加高亮样式,方便用户快速定位
需要注意的是,这种前端筛选方式仅适用于表格数据已经全部加载到页面的情况,如果表格数据是分页从后端请求的,需要结合后端接口实现筛选逻辑。

jQueryHTML_table动态筛选DOM操作修改时间:2026-05-29 17:20:16

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。