我希望我的代码为每个元素ddown
提供一个事件,该事件会将slactive
类添加到实际的下拉列表中。但是控制台说document.getElementById('sl'+(n+1))
为空,因此不是对象。但是,如果我在事件中的函数内部不使用n
,这可以正常工作,但仅适用于第一个元素。元素命名为sl1,sl2,sl3,...
ddown = document.getElementsByClassName('ddown');
for(var n=0; n<ddown.length; n++) {
ddown[n].addEventListener('mousedown', function(){document.getElementById('sl'+(n+1)).classList.add('slactive');});
console.log('sl'+(n+1));
}
P.S。 console.log
提供了正确的代码,我认为问题属于n
。
答案 0 :(得分:2)
您需要在添加侦听器之前锁定n的值。
用
替换你的行(正在添加监听器)df