You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

给NodeList的li元素添加eventListener时出现TypeError错误求助

解决NodeList元素添加事件监听器报错的问题

嘿,咱们直接说重点——你遇到的这个报错,核心原因是方法名拼写错误!你写的addEventLister少了一个字母n,正确的DOM事件绑定方法名应该是addEventListener。

先看你出错的代码:

for (var x=0; x < dataList.length; x++) { 
  dataList[x].addEventLister("mouseover", function() { 
    console.log("test"); 
  }); 
}

只需要把addEventLister改成addEventListener,这个基础问题就解决了:

for (var x=0; x < dataList.length; x++) { 
  dataList[x].addEventListener("mouseover", function() { 
    console.log("test"); 
  }); 
}

另外,给你两个优化建议:

  • 用let代替var声明循环变量x,避免变量提升带来的闭包陷阱(虽然你这个场景里打印固定字符串不会有问题,但养成好习惯没坏处):
    for (let x=0; x < dataList.length; x++) { 
      dataList[x].addEventListener("mouseover", function() { 
        console.log("test"); 
      }); 
    }
    
  • 现代浏览器中NodeList原生支持forEach遍历,写法更简洁直观:
    dataList.forEach(item => {
      item.addEventListener("mouseover", () => {
        console.log("test");
      });
    });
    

补充一句:你能成功打印dataList[x],说明这些元素都是有效的DOM节点,所以排除了“操作非DOM元素”的可能性,这次的问题完全是拼写失误导致的~

内容的提问来源于stack exchange,提问作者swirdlerr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:21:52