具有多个选择的单个addEventListener

时间:2017-08-26 00:21:33

标签: javascript html

我环顾四周,我找不到能解决问题的任何东西。有一个帖子使用按钮,但我似乎无法根据我的需要修改它。

我试图只使用一个事件监听器进行多次选择。我想返回select的id和选中的值,但据我所知,我需要为每个id或document.getElementById("ID").addEventListener('change',func(),true)使用document.getElementsByTagName('select').addEventListener('change', func(), true),我得到一个错误说:

selection.addEventListener is not a function. (In 'selection.addEventListener('change', func(), true)', 'selection.addEventListener' is undefined)

我希望有人可以花点时间告诉我哪里出错了,或者我是否需要使用不同的方法来完成我的任务。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

方法getElementsByTagName会返回HTMLCollection个元素,而不是DOM Element,因此您无法使用addEventListener

您可以做的是浏览HTMLCollection中的所有元素并添加您想要的事件:

let selectElements = document.getElementsByTagName('select');
Array.prototype.forEach.call(selectElements, function(el) {
    eladdEventListener('change', func(), true)
})