【发布时间】:2021-10-19 12:45:33
【问题描述】:
我正在尝试输入文本,按下按钮时会添加到 ul 列表,但我在控制台中一直出现此错误,我不知道为什么
Uncaught TypeError: btn.addEventListener is not a function at script.js:5
代码:
var text = document.getElementsByClassName('text');
var list = document.querySelector('.list');
var btn = document.getElementsByClassName('add');
btn.addEventListener("click", function(){
var content = document.createElement('li')
content.innerText = text.value
list.append(content)
})
【问题讨论】:
-
同时提供您的 HTML 代码。
-
我相信
getElementsByClassName方法会返回一个数组,这就是您遇到该错误的原因。 -
getElementsByClassNamereturns a live HTML collection。您不能将事件侦听器添加到事物列表中。 -
改用
querySelector/querySelectorAll -
使用
btn[0].addEventListener因为getElementsByClassName返回集合,而不是您可以添加事件的单个元素。
标签: javascript html web