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

点击侧边栏合作方名称时为对应内容加selected类并隐藏其余区块的实现方案

实现步骤

1. 修正HTML ID冲突问题

HTML规范要求同一页面ID唯一,你当前侧边栏合作方项和右侧内容区块ID重复,我们改用data-*属性关联二者,修改侧边栏的合作方项代码如下:

<div class="slide">
    <h4 class="slid-header">| Partners</h4>
    <p class="partners partner-selected" data-target="zoom"><span>Zoom</span></p>
    <p class="partners" data-target="jabra"><span>Jabra</span></p>
    <p class="partners" data-target="epos"><span>EPOS</span></p>
    <p class="partners" data-target="dten"><span>DTEN</span></p>
    <p class="partners" data-target="ttec"><span>TTec</span></p>
</div>

保留右侧内容区块的ID不变即可,同时可以删掉侧边栏p标签上重复的ID

2. 调整CSS规则

默认隐藏所有未选中的合作方内容区块,修改对应CSS:

/* Partners content*/
.partners-content {
    margin-left: 80px;
    display: none; /* 取消注释,默认隐藏所有内容 */
}
/* 其余CSS保持不变 */
.selected {
    display:block;
    background-color: red;
}

3. 添加原生JS交互代码

在页面末尾</body>标签前添加以下JS代码即可实现需求:

// 等待DOM加载完成后执行
document.addEventListener('DOMContentLoaded', function() {
    // 获取所有侧边栏合作方项
    const partnerTabs = document.querySelectorAll('.slide .partners');
    // 获取所有右侧内容区块
    const partnerContents = document.querySelectorAll('.partners-content');

    partnerTabs.forEach(tab => {
        // 给每个侧边栏项绑定点击事件
        tab.addEventListener('click', function() {
            // 获取当前点击项对应的内容ID
            const targetId = this.getAttribute('data-target');
            
            // 先移除所有侧边栏项的选中状态
            partnerTabs.forEach(t => t.classList.remove('partner-selected'));
            // 给当前点击项加选中样式
            this.classList.add('partner-selected');

            // 移除所有内容区块的selected类,全部隐藏
            partnerContents.forEach(content => content.classList.remove('selected'));
            // 给对应ID的内容区块加selected类,显示并应用红背景
            document.getElementById(targetId).classList.add('selected');
        })
    })
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:36:02