Null不是一个对象,下拉

时间:2016-11-03 06:40:22

标签: javascript

我希望我的代码为每个元素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

的范围

1 个答案:

答案 0 :(得分:2)

您需要在添加侦听器之前锁定n的值。

替换你的行(正在添加监听器)
df