使用事件委托,我将列表项(li)定位为onclick并在clicked元素(li)上切换“突出显示”类。但是,当我尝试通过将所有子对象作为目标对象来删除相同的“突出显示”类并遍历它们时,出现了非函数错误。不知道我在做什么错。
const ul = document.querySelector('ul');
ul.addEventListener('click', (el) => {
const others = el.target.closest('ul').children;
others.forEach(element => {
elem.classList.remove('highlight');
console.log(element);
});
el.target.closest('li').classList.toggle('highlight');
});
ul{ list-style: none }
li{
border:1px solid #ccc;
padding: 5px 25px;
}
.highlight{
background: red
}
<ul>
<li>
<h1>Item head 1</h1>
<p>Item paragraph</p>
</li>
<li>
<h1>Item head 1</h1>
<p>Item paragraph</p>
</li>
<li>
<h1>Item head 1</h1>
<p>Item paragraph</p>
</li>
<li>
<h1>Item head 1</h1>
<p>Item paragraph</p>
</li>
</ul>