假设我有几个textareas,并且我想向每个textarea添加事件侦听器。当我在textarea中键入内容时,我需要控制它内部键入的值。我只是无法弄清楚如何将“this”引用到添加事件侦听器时循环调用的每个textarea中。下面的代码在浏览器控制台中导致“未定义”。也许你可以把它设置正确。应用了这个帮助。非常感谢你。通过循环添加事件侦听器后得到此节点值
window.addEventListener("load", function(){
var char_max_inputs = document.querySelectorAll('.char_max');
for (var i = 0; i < char_max_inputs.length; i++){
var max_char = char_max_inputs[i].getAttribute("max_char");
var counter_id = char_max_inputs[i].getAttribute("counter_id");
char_max_inputs[i].addEventListener("keyup", function(){count_char(counter_id, max_char);}, false);
}
});
function count_char(counter_id, max_char) {
console.log(this.value);
}
[addEventListener使用for循环和传递值可能重复](https://stackoverflow.com/questions/19586137/addeventlistener-using-for-loop-and-passing-values) – Xlee