Javascript 我想随机单击我的列表项,但可以';T

Javascript 我想随机单击我的列表项,但可以';T,javascript,list,click,html-lists,addeventlistener,Javascript,List,Click,Html Lists,Addeventlistener,我想将单击事件添加到我的项目列表中。这是一个待办事项列表,所以每当我单击列表项时,它都应该有一个行通过样式。然而,我不能把它弄对。控制台总是说: Uncaught TypeError: togList.addEventListener is not a function 之所以出现此错误,是因为getElementsByTagName不返回它返回的元素 因此,您需要在集合上循环: var-togList=document.getElementsByTagName(“li”); 函数togg

我想将单击事件添加到我的项目列表中。这是一个待办事项列表,所以每当我单击列表项时,它都应该有一个行通过样式。然而,我不能把它弄对。控制台总是说:

Uncaught TypeError: togList.addEventListener is not a function


之所以出现此错误,是因为
getElementsByTagName
不返回它返回的元素

因此,您需要在集合上循环:

var-togList=document.getElementsByTagName(“li”);
函数togglesOnOff(){
this.classList.toggle(“完成”);
}
from(togList).forEach(item=>item.addEventListener(“单击”,togglesOnOff))
。完成{
背景:红色;
}
  • 项目一
  • 项目二
  • 项目三

需要检查的一件事是,可能在处理HTML元素之前正在运行脚本。哦..我确保脚本位于最后一部分。谢谢你,谢谢你快速的回答。我只是想补充一点。该代码仅应用于原始列表项,每当我通过文本框添加项时,切换功能将不会应用于它们。您需要在创建项时向其添加事件。
var togList = document.getElementsByTagName("li");

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

togList.addEventListener("click", togglesOnOff);