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

点击tab标签项时显示多个相同类名关联容器的jQuery实现问题

实现方案

原有代码问题排查

  • 类名拼写不匹配:HTML中tab外层类是horisontal-tabs,你写的jQuery选择器用了horizontal-tabs,导致点击事件根本没有绑定成功
  • 逻辑冲突:你先给.container-sam加了section-visible,下一行代码又把所有带section-visible的元素改成了section-hidden,等于操作直接抵消
  • 代码冗余:不需要给每个人员单独写点击事件,统一绑定即可大幅简化代码

完整实现代码

// 统一给所有tab标签绑定点击事件
$('.horisontal-tabs ul.tabs li.tab-label').click(function (event) {
  event.stopPropagation();
  // 1. 提取当前点击的人员标识,从person-xxx类中截取xxx部分
  const personKey = Array.from(this.classList).find(cls => cls.startsWith('person-')).replace('person-', '');
  // 2. 切换tab的active状态
  $('.horisontal-tabs ul.tabs li.tab-label').removeClass('active');
  $(this).addClass('active');
  // 3. 先隐藏所有人员对应的容器
  $('[class*="container-"]').removeClass('section-visible').addClass('section-hidden');
  // 4. 仅显示当前点击人员对应的所有容器
  $(`.container-${personKey}`).removeClass('section-hidden').addClass('section-visible');
});

补充说明

请确保你的CSS中两个控制显隐的类定义正确,示例:

.section-hidden {
  display: none !important;
}
.section-visible {
  display: block !important;
}

后续新增人员时,只需要按照现有规则添加person-xxx类的tab、container-xxx类的内容容器即可,不需要修改JS代码,可维护性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:45:00