Javascript Null不是一个对象,正在生成下拉列表
我希望我的代码为classJavascript Null不是一个对象,正在生成下拉列表,javascript,Javascript,我希望我的代码为classddown的每个元素提供一个事件,将slactive类添加到实际的下拉列表中。但是控制台说document.getElementById('sl'+(n+1))为空,因此不是对象。但是,如果我没有在事件中的函数中使用n,这很好,但只适用于第一个元素。元素的名称类似于sl1、sl2、sl3等 ddown = document.getElementsByClassName('ddown'); for(var n=0; n<ddown.length; n++) {
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));
}
ddown=document.getElementsByClassName('ddown');
对于(var n=0;n您需要在添加侦听器之前锁定n的值
将您的行(正在添加侦听器)替换为
在添加侦听器之前,需要锁定n的值
将您的行(正在添加侦听器)替换为
您可能会注意到,typeof(null)实际上是“object”。@vothaison我用不同的词编写了控制台输出。好吧,gurvinder372是正确的。您的案例称为“意外关闭”^^^。您可能会注意到,typeof(null)实际上是“object”@vothaison我用不同的词写了控制台输出。好吧,gurvinder372是正确的。你的案例被称为“事故结束”^^。
(function (n){ ddown[n].addEventListener('mousedown', function(){document.getElementById('sl'+(n+1)).classList.add('slactive');}); )(n)