为什么我不能在循环中添加事件侦听器?

时间:2019-03-14 00:32:59

标签: javascript events

const inputs = document.getElementsByClassName("uk-input")
for (let element of inputs) {
  element.addEventListener("onchange", e => {
    alert("test")
  })
}
console.log(inputs)

当我查看最后一行的输出时,“ onchange”事件侦听器字段为null。我在做什么错了?

也不会在相应的输入字段中键入会产生一个警告框。

1 个答案:

答案 0 :(得分:3)

事件名称change,而不是onchange

const inputs = document.getElementsByClassName("uk-input")
for (let element of inputs) {
  element.addEventListener("change", e => {
    alert("test")
  })
}
console.log(inputs)

在分配给onchange属性名称来添加侦听器时,您将使用onchange,例如:

const inputs = document.getElementsByClassName("uk-input")
for (let element of inputs) {
  element.onchange = e => {
    alert("test")
  };
}
console.log(inputs);

(但这可能不是一个好主意,因为这将覆盖分配给onchange的先前的侦听器,而将来可能分配给onchange的代码将覆盖您的侦听器-最好使用改为addEventListener