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

如何设置HTML中details标签的最大同时展开数量?现有代码仅支持1个,需调整为3

实现details标签最多同时展开指定数量的方案

你只需要替换原有JS逻辑即可,不需要修改现有HTML结构,最大可展开数量支持自定义调整:


JavaScript代码

const details = document.querySelectorAll("details");
const MAX_OPEN = 3; // 这里可修改为你需要的最大同时展开数量

details.forEach(targetDetail => {
  targetDetail.addEventListener("click", () => {
    // 筛选出所有当前已展开的details元素
    const openedList = Array.from(details).filter(item => item.hasAttribute("open"));
    // 超出上限时关闭最早打开的元素
    if (openedList.length > MAX_OPEN) {
      openedList[0].removeAttribute("open");
    }
  });
});

原有HTML代码(无需修改)

<details>
  <summary>test0</summary>
  0
</details>

<details>
  <summary>test1</summary>
  1
</details>
<details>
  <summary>test2</summary>
  2
</details>
<details>
  <summary>test3</summary>
  3
</details>

逻辑说明:每次点击details时,会自动统计当前已展开的元素数量,当超过你设置的上限时,会自动关闭最早展开的那个元素,保证同时展开的数量始终不超过上限。如果需要调整最大数量,直接修改MAX_OPEN的数值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:15:08