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

HTML三级折叠结构异常:经验模块下的二级折叠按钮无法展开内容

HTML三级折叠结构异常:经验模块下的二级折叠按钮无法展开内容

嘿,我帮你揪出两个导致Experience模块下二级折叠失效的关键问题啦,咱们一步步来解决:

问题1:JavaScript里的拼写错误

你在处理collapsible2的代码里,把nextElementSibling拼写成了nextElementsibling(注意Sibling的首字母S要大写!)。这个拼写错误会让content2变量直接变成undefined,自然没法切换内容的显示状态了。

问题2:HTML结构里的多余<br>标签

在每个collapsible2按钮后面,你加了<br><br>,这会导致nextElementSibling获取到的是<br>元素,而不是你想要的content2容器。浏览器会把相邻的<br>当成兄弟元素,代码根本找不到正确的内容块。


修正后的完整代码示例

1. 修正后的JavaScript

var coll = document.getElementsByClassName("collapsible");
var i;

for (i = 0; i < coll.length; i++) {
  coll[i].addEventListener("click", function() {
    this.classList.toggle("active");
    var content = this.nextElementSibling;
    if (content.style.display === "block") {
      content.style.display = "none";
    } else {
      content.style.display = "block";
    }
  });
}

var coll2 = document.getElementsByClassName("collapsible2");
var j;

for (j = 0; j < coll2.length; j++) {
  coll2[j].addEventListener("click", function() {
    this.classList.toggle("active");
    // 修正拼写错误:Sibling首字母大写
    var content2 = this.nextElementSibling;
    if (content2.style.display === "block") {
      content2.style.display = "none";
    } else {
      content2.style.display = "block";
    }
  });
}

2. 修正后的Experience模块HTML

把按钮和内容块之间的<br><br>去掉,保持结构连贯:

<button class="collapsible"><h3>EXPERIENCE</h3></button>
<div class="content">
  <button class="collapsible2"><h4>EXAMPLE1 </h4></button>
  <div class="content2">
    <h4>Development of New Salesforce Feature: AAA</h4>
    <ul>
      <li>XYZ</li>
    </ul>
    <h4>Development of New Salesforce Feature: BBB</h4>
    <ul>
      <li>XYZ</li>
    </ul>
  </div>

  <button class="collapsible2"><h4>EXAMPLE 2</h4></button>
  <div class="content2">
    <ul>
      <li>XYZ</li>
    </ul>
  </div>
</div>

额外优化建议(可选)

其实你可以统一折叠按钮和内容容器的类名,比如所有折叠按钮都用collapsible,内容容器都用content,这样只需要一段JavaScript代码就能处理所有折叠效果,不用写两个重复的循环:

// 统一处理所有折叠按钮
var collapsibles = document.querySelectorAll(".collapsible, .collapsible2");
collapsibles.forEach(btn => {
  btn.addEventListener("click", function() {
    this.classList.toggle("active");
    var content = this.nextElementSibling;
    content.style.display = content.style.display === "block" ? "none" : "block";
  });
});

这样能减少代码冗余,后续维护也更省心~

备注:内容来源于stack exchange,提问作者Hannah Broom

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 18:53:12