- 此问题在此处已有答案**:
JavaScript closure inside loops – simple practical example(44个答案)
14小时前关门了。
我有3个input
的数字字段,我想在控制台日志中触发,每次我在3个input
字段中输入一个数字,我已经为addEventListener
添加了一个for循环,但是仍然有错误显示这个addEventListener
部分不是一个函数,我想问一下,对于要实现的代码,我遗漏了什么?
太感谢你了!
超文本:
<input type="number" id="no1">
<input type="number" id="no2">
<input type="number" id="no3">
联森:
const val = document.getElementsByTagName("input");
for (i = 0; i < val.length; i++) {
val[i].addEventListener("input", () => {
console.log(val[i].value);
});
}
2条答案
按热度按时间pb3skfrl1#
打字错误,elementsByTagName中缺少复数s
此外,
console.log(val[i].value);
在您使用的eventListener中也是未知的。要解决这个问题你可以
或
下面是使用委托的一种更优雅的方法
注意DOMContentLoaded-当页面加载了所有HTML时触发
一个二个一个一个
qcbq4gxm2#
你的问题是在你的事件处理器中,
val
数组没有被定义。你应该阅读闭包来了解为什么会这样。要解决您的特定问题,您可以进行以下更改-事件处理程序应接受
event
参数,该参数包括currentTarget属性,在本例中,该属性将是触发事件的<input>
元素。