事件委托-无法遍历子元素

时间:2019-12-12 07:07:16

标签: javascript html css

使用事件委托,我将列表项(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>

0 个答案:

没有答案