我想随机点击我的列表项但不能

时间:2018-05-19 16:08:02

标签: javascript list click html-lists addeventlistener

我想在我的商品列表中添加点击事件。它是一个TO-DO-LIST,所以每当我点击它时,列表项应该有一个直通式。但是,我无法做到对。控制台总是说:

Uncaught TypeError: togList.addEventListener is not a function
var togList = document.getElementsByTagName("li");

function togglesOnOff() {
        togList.classList.toggle("done");
}

togList.addEventListener("click", togglesOnOff);

1 个答案:

答案 0 :(得分:1)

您收到错误是因为getElementsByTagName未返回返回collection of elements的元素。

所以,你需要遍历集合:

var togList = document.getElementsByTagName("li");

function togglesOnOff() {
  this.classList.toggle("done");
}

Array.from(togList).forEach(item => item.addEventListener("click", togglesOnOff));
.done {
  background: red;
}
<ul>
  <li>Item one</li>
  <li>Item two</li>
  <li>Item three</li>
</ul>

您还需要更改函数以使用当前元素切换类。为此,我们只需将togList更改为this