Reactjs timerset.addEventListener不是函数吗?
当我运行下面的代码时,我得到了上面的错误。为什么呢Reactjs timerset.addEventListener不是函数吗?,reactjs,addeventlistener,getelementsbyclassname,Reactjs,Addeventlistener,Getelementsbyclassname,当我运行下面的代码时,我得到了上面的错误。为什么呢 var timerset=document.getElementsByClassName(“newgameTButton”); 函数显示(){ 设置间隔(myTimer,1000); var计数=0; 函数myTimer(){ 如果(计数!==9)计数++; 否则{ 计数=0; textInfo='超时'; //this.context.newGame(); } document.getElementById(“计时器”).innerHTML
var timerset=document.getElementsByClassName(“newgameTButton”);
函数显示(){
设置间隔(myTimer,1000);
var计数=0;
函数myTimer(){
如果(计数!==9)计数++;
否则{
计数=0;
textInfo='超时';
//this.context.newGame();
}
document.getElementById(“计时器”).innerHTML=count;
}
}
//对于(var i=0;i
文档接口的getElementsByClassName
方法返回一个
具有所有给定属性的所有子元素的类数组对象
类名
EventTarget方法addEventListener()
设置一个函数
将在指定的事件传递到时调用
目标。常见目标是元素、文档和窗口
正如您从上述引用中所读到的,
getElementsByClassName()
返回类似数组的对象,addEventListener()
可以应用于元素、文档和窗口,但不能直接应用于任何类型的数组
必须将事件侦听器添加到元素,而不是元素数组getElementsByClassName
一次返回多个元素(或者更具体地说,NodeList对象,它类似于一个元素数组),因此不能直接对其应用addEventListener
您可以通过迭代timerset
变量并使用循环对每个项/元素调用addEventListener来解决此问题
因此,在应用了上述更改之后,下面的代码可以正常工作-
var timerset=document.getElementsByClassName(“newgameTButton”);
函数显示(){
设置间隔(myTimer,1000);
var计数=0;
函数myTimer(){
如果(计数!==9)计数++;
否则{
计数=0;
textInfo='超时';
//this.context.newGame();
}
document.getElementById(“计时器”).innerHTML=count;
}
}
对于(var i=0;i
*{
文本对齐:居中
}
#计时器{
字体大小:100px;
颜色:绿色;
}
.新游戏按钮{
填充:20px;
背景色:#0275d8;
颜色:白色;
}
启动计时器
0
timerset.addEventListener is not a function