我有一个如下的列表:
<ul>
<li class="item">Item 1</li>
<li class="item">Item 2</li>
<li class="item">Item 3</li>
</ul>
我需要在单击时将“active”类分别添加到每个项,并在上一个项上删除它。
类似于这个问题:Vanilla JS remove class from previous selection,但由于要兼容旧浏览器,我需要使用for循环而不是forEach。
我一直在尝试将那个答案适应我的示例:
const items = document.querySelectorAll(".item");
for (let i = 0; i < items.length; i++) {
const item = items[i];
item.addEventListener("click", addActiveClass);
for (let i = 0; i < items.length; i++) {
const item = items[i];
item.addEventListener("click", removeClass);
}
}
function removeClass(e) {
e.target.classList.remove("active");
}
function addActiveClass(e) {
e.target.classList.add("active");
}
但是它仍然没有按预期工作 :(