我想在我的商品列表中添加点击事件。它是一个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);
答案 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
。