javascript - 无法添加第二个切换类

标签 javascript html

我想将切换类添加到两个元素 li 和 div,但我只能让它在 div 上工作

var list = document.getElementsByClassName("list");
var acc = document.getElementsByClassName("accordion");
var i;

for (i = 0; i < acc.length; i++) {
  acc[i].addEventListener("click", function() {
    this.classList.toggle("active");
    list.classList.toggle("active");
    var panel = this.nextElementSibling;

    if (panel.style.maxHeight) {
      panel.style.maxHeight = null;
    } else {
      panel.style.maxHeight = panel.scrollHeight + "px";
    }
  });
}
<ul class="collapsible popout">
    <li class="list">
        <div class="accordion">Section 1</div>
        <div class="panel">
            <p>Lorem ipsum dolor sit amet.</p>
        </div>
    </li>
    <li class="list">
        <div class="accordion">Section 2</div>
        <div class="panel">
            <p>Lorem ipsum dolor sit amet.</p>
        </div>
    </li>
    <li class="list">
        <div class="accordion">Section 3</div>
        <div class="panel">
            <p>Lorem ipsum dolor sit amet.</p>
        </div>
    </li>
</ul>

我似乎无法同时访问 li 类列表和 div Accordion 来切换事件状态,我哪里出错了抱歉,在 javascript 方面不太熟练

最佳答案

使用 this.parentNode.classList.toggle("active"); 而不是 list.classList.toggle("active");

https://jsfiddle.net/nimittshah/t5ubLj40/

关于javascript - 无法添加第二个切换类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52388387/

相关文章:

Javascript 范围问题 : function available in $(doc). read(),但不在事件处理程序中

javascript - 我如何编写一个 Javascript 警报,使其在每个网络 session 中只填充一次?

html - 我如何使这个元素居中?

javascript - 向下滚动时高度会发生变化

javascript - highcharts - 热图底部不需要的空间

javascript - 模式适用于 firefox 和 IE,但不适用于 chrome

javascript - 什么是 waapi 有效的 css 属性

javascript - jQuery : progress bar show in html

html - 网页部分的半透明效果

jquery - jQuery 中的嵌套点击