for循环中的事件侦听器错误

时间:2018-04-23 06:05:29

标签: javascript html5

所以我在某些元素上添加了click事件侦听器,点击后我需要添加和删除类。

// ind is a list of javascript elements

for(var i=0; i<ind.length; i++){
    ind[i].addEventListener('click', function () {
      for(var j=0; j<ind.length; j++){
        ind[j].classList.remove('active');
      }
      ind[i].classList.add('active');
      selectedInd = ind[i].childNodes[1].innerHTML;
    });
}

当我点击任何元素时,我得到一个错误,即ind [i]未定义。  当我这样写它时,它工作正常 -

for(var i=0; i<ind.length; i++){
    ind[i].addEventListener('click', function () {
      for(var j=0; j<ind.length; j++){
        ind[j].classList.remove('active');
      }
      this.classList.add('active');
      selectedInd = this.childNodes[1].innerHTML;
    });
}

为什么它不适用于第一个代码块。如果我使用let那么它也可以。

0 个答案:

没有答案