addEventListener 的 javascript 未正确分配

标签 javascript addeventlistener

当我单击页面上的任何选择时,该函数告诉我的唯一信息是它正在使用最后一个选择。

假设我的页面上有 6 个选择,我首先分配一个 addEventListener向他们所有人传递 id 作为参数,然后当更改其中任何一个时,我希望警报显示“确定+我选择的选择”,但我得到的始终是“确定 gubeSelect6”。

为什么当我选择 1-5 时,它没有显示正确的内容?是我的addEventListener错了?

提前非常感谢,

function resetValues(ddl) {
    alert("OK " + ddl);
}

var selects = document.getElementsByName('gubeSelect');
var sel;

console.log(selects);

for(var z = 0; z < selects.length; z++){
    console.log(z + " " + selects[z].id + " " + selects[z].name);
    sel = selects[z];
    document.getElementById(sel.id).addEventListener("change", function () {
        resetValues(sel.id);
    });
}

最佳答案

试试这个:

document.getElementById(sel.id).addEventListener("change", function () {
        resetValues(this.id);
    });

当事件发生时,sel.id 将始终为 6。 您需要处理添加监听器的元素。

关于addEventListener 的 javascript 未正确分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26419347/

相关文章:

javascript - 如何从下面的代码中获取文本 "Submit"

css - 对共享相同类名但仅对触发事件的特定元素设置样式的多个 DOM 元素进行样式设置?

javascript - JSON.parse(JSON.stringify(e)) 将对象转换为字符串

javascript - wysihtml5 文本区域大小调整

javascript - 具有不同触发选项的单个 html 元素上的多个 tippy.js 实例

javascript - setTimeOut 如何与调整大小事件监听器配合使用?

javascript - 附加到事件的原型(prototype)方法未定义

javascript - 使用 XMLHttpRequest 更新元素后,addEventListener 停止监听

javascript - 如何使用 addEventListener 访问 JavaScript 对象属性?

javascript - .data 函数和/或 jsonrequest 方法