如何使用 JavaScript/jQuery 实现多条件表格分类筛选功能-js教程

本文介绍一种简洁高效的 jquery 表格动态筛选方案:通过监听复选框状态变化,自动显示/隐藏对应类名的表格行,支持全显(无勾选时)与多选组合过滤,代码精简且逻辑清晰。

要实现“勾选即显示、未勾选即隐藏”的自适应表格筛选,核心在于:动态收集所有已勾选复选框的 value 值,再匹配

元素的 class 属性,仅保留匹配项,其余统一隐藏。以下为完整、健壮的实现方案:

✅ 推荐实现(jQuery,简洁可靠)

$('input[type="checkbox"]').on('change', function() {
  // 获取所有已勾选复选框的 value 值(如 'audio', 'video')
  const activeFilters = $('input[type="checkbox"]:checked')
    .map((_, el) => $(el).val())
    .get();

  // 显示全部行(重置状态)
  $('table tr').show();

  // 若有至少一个勾选,则隐藏不匹配的行
  if (activeFilters.length > 0) {
    $('table tr').filter(function() {
      const rowClass = $(this).attr('class');
      // 若当前行 class 不在 activeFilters 中,则隐藏
      return !activeFilters.includes(rowClass);
    }).hide();
  }
});

? 关键说明

  • 使用 change 事件而非 click,更准确响应用户操作(兼容键盘操作、无障碍访问);
  • 先 show() 全部再按需 hide(),避免因多次点击导致状态累积错误;
  • $(this).attr(‘class’) 直接获取
    的 class 字符串(如 “audio”),与 checkbox 的 value 严格对应——要求 HTML 中每个

    仅有一个类别 class,且与 checkbox 的 value 完全一致;

  • 若某行含多个 class(如
    ),上述逻辑将失效;此时应改用 $(this).hasClass(…) 或正则匹配,但推荐保持结构简洁,单 class 管理更可控。

    ⚠️ 注意事项

    • 确保 jQuery 已正确引入(建议 3.6+);
    • 表格需有明确
      包裹,避免误操作其他页面

      ;

    • 如需支持「无数据时显示提示」,可在筛选后追加:
      if ($('table tr:visible').length === 0) {
        $('table').append('<tr class="no-results"><td colspan="100%">暂无匹配内容</td></tr>');
      } else {
        $('table tr.no-results').remove();
      }
    • 该方案逻辑清晰、扩展性强,稍作调整即可适配更多筛选维度或动态加载场景。

      夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
      1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
      2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
      3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
      4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
      5. 如有链接无法下载、失效或广告,请联系管理员处理!
      6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
      7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
      夏夕资源网-网站模板_免费源码_资源素材 » 如何使用 JavaScript/jQuery 实现多条件表格分类筛选功能-js教程
      在线时间:12:00 - 22:00
      关注微信公众号:微信公众号
      站长邮箱:[email protected]
      • 运营天数: 1393+
      • 资源总数: 47989+
      • 用户总数: 1+
      • 今日更新: 0+
      • 访问次数: 4028861+
      • 本周更新: 0+
      • 最后更新: 2026-03-16

      本站指数

      ×
      • 运营天数: 1393+
      • 资源总数: 47989+
      • 用户总数: 1+
      • 今日更新: 0+
      • 访问次数: 4028861+
      • 本周更新: 0+
      • 最后更新: 2026-03-16