Братья и сестры элемента-переключателя
Переключение элементов можно выполнить просто с помощью classList.toggle
. Вместо добавления прослушивателя событий для каждого подзаголовка было бы лучше создать одного прослушивателя для общего предка (например, main-menu
) и прослушать, если элемент, по которому щелкнули (например, event.target
), является подзаголовком и принять меры, если так.
let container = document.querySelector('.main-menu');
container.addEventListener('click', (e) => {
let target = e.target, el = target;
if (target.classList.contains('sub-heading'))
while (el = el.nextElementSibling)
el.classList.toggle('hide')
});
.hide {
display: none;
}
<ul class="main-menu">
<li>One</li>
<li>Two</li>
<ul class="sub-menu">
<li class="sub-heading">Sub Heading</li>
<li>A</li>
<li>B</li>
</ul>
<li>Three</li>
<li>Four</li>
</ul>