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

原生JS手风琴点击其他项时按钮文本无法重置为Open如何解决

问题根因

原有代码仅处理了当前点击项的按钮文本切换,在关闭其余已展开手风琴项时,没有同步重置对应项的按钮文本,因此出现已关闭面板的按钮仍显示「Close」的异常。

修复代码

仅需修改JS逻辑即可,在遍历关闭其余项的步骤中新增重置按钮文本的逻辑,优化后的完整代码如下:

document.addEventListener("DOMContentLoaded", function(event) {
    const accordionItems = document.querySelectorAll('.acc__item');

    accordionItems.forEach((acc) => {
        const btns = acc.querySelectorAll('.acc__button')
        btns.forEach(btn => {
            btn.addEventListener("click", () => {
                // 统一关闭其余所有项并重置按钮文本
                accordionItems.forEach((item) => {
                    if (item !== acc) {
                        item.classList.remove("open");
                        item.querySelector('.acc__button').innerHTML = "Open";
                    }
                });
                // 切换当前项状态并同步按钮文本
                acc.classList.toggle("open");
                btn.innerHTML = acc.classList.contains('open') ? "Close" : "Open";
            });
        });
    });  
});

调整后同时简化了原有的按钮文本判断逻辑,代码可读性更高,所有场景下的按钮文本都能和面板展开状态保持一致。

内容的提问来源于stack exchange,提问作者Лео

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:06:04