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

在Web前端开发中,经常需要处理多级关联的表格数据,比如主表选中某行后,子表根据关联字段展示对应数据,同时支持在表格中查找指定内容并高亮,还能动态修改单元格的值。jQuery作为轻量级的JavaScript库,能很方便地实现这些交互需求。

如何用jQuery实现多级关联表格数据查找、高亮与动态值更新

基础表格结构搭建

首先我们需要搭建两级关联的表格结构,主表展示分类信息,子表展示分类下的明细数据,两者通过分类ID关联。

<table id="mainTable" border="1">
  <thead>
    <tr>
      <th>分类ID</th>
      <th>分类名称</th>
      <th>操作</th>
    </tr>
  </thead>
  <tbody>
    <tr data-id="1">
      <td>1</td>
      <td>电子产品</td>
      <td><button class="showSub">查看明细</button></td>
    </tr>
    <tr data-id="2">
      <td>2</td>
      <td>办公用品</td>
      <td><button class="showSub">查看明细</button></td>
    </tr>
  </tbody>
</table>

<table id="subTable" border="1" style="margin-top:20px;display:none;">
  <thead>
    <tr>
      <th>明细ID</th>
      <th>所属分类ID</th>
      <th>商品名称</th>
      <th>库存</th>
    </tr>
  </thead>
  <tbody>
    <tr data-cate-id="1">
      <td>101</td>
      <td>1</td>
      <td>智能手机</td>
      <td class="stock">50</td>
    </tr>
    <tr data-cate-id="1">
      <td>102</td>
      <td>1</td>
      <td>平板电脑</td>
      <td class="stock">30</td>
    </tr>
    <tr data-cate-id="2">
      <td>201</td>
      <td>2</td>
      <td>打印纸</td>
      <td class="stock">200</td>
    </tr>
  </tbody>
</table>

实现多级关联展示

点击主表的查看明细按钮,根据当前行的分类ID筛选子表中对应的数据行,实现两级表格的关联展示。

$(function(){
  // 主表按钮点击事件
  $('#mainTable').on('click', '.showSub', function(){
    // 获取当前行的分类ID
    var cateId = $(this).closest('tr').data('id');
    // 隐藏所有子表行
    $('#subTable tbody tr').hide();
    // 展示匹配分类ID的子表行
    $('#subTable tbody tr[data-cate-id="'+cateId+'"]').show();
    // 显示子表
    $('#subTable').show();
  });
});

表格数据查找与高亮

添加查找输入框,输入关键词后遍历表格单元格,匹配的内容添加高亮样式,不匹配的内容移除高亮。

<input type="text" id="searchInput" placeholder="输入查找关键词">
<button id="searchBtn">查找</button>
<button id="resetBtn">重置</button>
<style>
  .highlight{background-color:yellow;font-weight:bold;}
</style>
$(function(){
  // 查找按钮点击事件
  $('#searchBtn').click(function(){
    var keyword = $('#searchInput').val().trim();
    // 先移除所有高亮
    $('#subTable tbody td').removeClass('highlight');
    if(keyword){
      // 遍历子表所有单元格
      $('#subTable tbody td').each(function(){
        var cellText = $(this).text();
        // 判断是否包含关键词
        if(cellText.indexOf(keyword) !== -1){
          $(this).addClass('highlight');
        }
      });
    }
  });

  // 重置按钮点击事件
  $('#resetBtn').click(function(){
    $('#searchInput').val('');
    $('#subTable tbody td').removeClass('highlight');
  });
});

动态值更新实现

支持双击子表的库存单元格,弹出输入框修改值,修改完成后更新单元格内容,同时可以添加简单的校验逻辑。

$(function(){
  // 子表库存单元格双击事件
  $('#subTable').on('dblclick', '.stock', function(){
    var oldVal = $(this).text();
    var input = $('<input type="number" value="'+oldVal+'" style="width:60px;">');
    $(this).html(input);
    input.focus();

    // 输入框失去焦点时更新值
    input.blur(function(){
      var newVal = $(this).val();
      // 校验输入是否为正整数
      if(newVal && /^d+$/.test(newVal)){
        $(this).parent().text(newVal);
      }else{
        alert('请输入有效的正整数库存值');
        $(this).parent().text(oldVal);
      }
    });

    // 回车键触发失去焦点
    input.keyup(function(e){
      if(e.keyCode === 13){
        $(this).blur();
      }
    });
  });
});

功能整合与注意事项

将上述功能整合后,需要注意以下几点:

  • 事件绑定尽量使用on方法委托,避免动态生成的子表行无法触发事件
  • 查找高亮功能如果需要支持主表,只需把遍历的表格范围扩大到#mainTable即可
  • 动态更新值的时候,如果数据需要和后端同步,可以在值更新成功后发送Ajax请求保存数据
  • 高亮样式可以根据需要调整,比如修改背景色或者文字颜色,提升可读性
以上实现方案覆盖了多级关联表格的核心交互需求,代码可以直接复制到本地运行测试,根据实际业务场景调整表格字段和逻辑即可。

jQuery表格数据查找数据高亮动态值更新多级关联修改时间:2026-07-15 20:06:45

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