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

如何使用jQuery显示自定义导航标签的对应内容?

实现自定义标签切换时显示对应内容的方案

看起来你已经搞定了标签的激活状态切换,现在只需要补全内容切换的逻辑就可以啦!我来给你梳理一下具体的实现步骤:

步骤1:完善HTML结构,补充数据关联

首先,你需要给每个标签元素加上data-id属性,用来和对应的内容区域做关联——这也是你代码里elem.data('id')要用到的,原来的HTML里没加,所以先补上:

<div class="row"> 
 <div class="col-4 master-advanced-left-tab master-advanced-left-tab-active" data-id="item1"> 
 <p>Item 1</p> 
 </div> 
 <div class="col-4 master-advanced-left-tab" data-id="item2"> 
 <p>Item 2</p> 
 </div> 
 <div class="col-4 master-advanced-left-tab" data-id="item3"> 
 <p>Item 3</p> 
 </div> 
</div> 
<div class="item-content item1"> Show content from item 1 </div> 
<div class="item-content item2"> Show content from item 2 </div> 
<div class="item-content item3"> Show content from item 3 </div>

这里我给所有内容区域加了一个共同的类item-content,方便批量操作,当然你也可以用其他选择器,不过统一类名会更简洁。

步骤2:调整CSS,默认隐藏非激活内容

初始状态下,我们只显示默认激活的Item1内容,其他内容先隐藏:

.master-advanced-left-tab { overflow: hidden; cursor: pointer; padding-bottom: 10px; padding-top: 10px; } 
.master-advanced-left-tab > p { text-overflow: ellipsis; height: 20px; } 
.master-advanced-left-tab-active { color: #1C72DF; border-bottom: 3px #1C72DF solid; }
/* 新增:默认隐藏所有内容区域,除了默认激活的item1 */
.item-content { display: none; }
.item1 { display: block; }

步骤3:补全jQuery的内容切换逻辑

在你已有的标签激活代码后面,加上内容切换的逻辑就可以了。不用复杂的toggle(),直接先隐藏所有内容,再显示对应ID的内容更直观:

// 假设elem是当前点击的标签元素(你应该是在点击事件里的,比如$('.master-advanced-left-tab').click(function(){...}))
$('.master-advanced-left-tab').removeClass('master-advanced-left-tab-active');
elem.addClass('master-advanced-left-tab-active');

// 内容切换逻辑
const targetContent = elem.data('id');
// 隐藏所有内容区域
$('.item-content').hide();
// 显示对应内容区域
$(`.${targetContent}`).show();

如果你更习惯用switch的写法,也可以改成这样:

$('.master-advanced-left-tab').removeClass('master-advanced-left-tab-active');
elem.addClass('master-advanced-left-tab-active');

switch (elem.data('id')) {
 case 'item1': 
   $('.item-content').hide();
   $('.item1').show();
   break;
 case 'item2': 
   $('.item-content').hide();
   $('.item2').show();
   break;
 case 'item3':
   $('.item-content').hide();
   $('.item3').show();
   break;
 default:
   // 可选:默认显示第一个内容
   $('.item-content').hide();
   $('.item1').show();
}

完整的点击事件示例

把所有逻辑放在点击事件里,确保点击标签时触发:

$(document).ready(function() {
  $('.master-advanced-left-tab').click(function() {
    const elem = $(this);
    // 切换标签激活状态
    $('.master-advanced-left-tab').removeClass('master-advanced-left-tab-active');
    elem.addClass('master-advanced-left-tab-active');
    
    // 切换内容显示
    const targetContent = elem.data('id');
    $('.item-content').hide();
    $(`.${targetContent}`).show();
  });
});

这样点击每个标签的时候,就会自动切换到对应的内容啦!逻辑很清晰,不需要依赖Bootstrap的组件,完全用你自己的结构就能实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:10:19