将classList.ADD添加到数组时,JavaScript控制台错误



嗨,试图理解和修复我在运行以下代码完整代码

时遇到的控制台错误
for(var i = 0 ; i <= paragraphs.length ; i++){
  if( i === 0 ){
    continue
  }
  paragraphs[i].classList.add('hide')
}

错误读取

Cannot read property 'classList' of undefined

我在reddit上找到了这种解释,但我不确定它是如何修复的?

非常感谢

您不在循环中的数组中。

这样做:

for(var i = 0 ; i < paragraphs.length ; i++)

而不是

for(var i = 0 ; i <= paragraphs.length ; i++)

您可以优化循环以直接在第二个项目上开始(" i = 1 ,而不是" i = 0 ")

您的循环超过了您必须解决的段落的数量:

1-段落,lengtth -1

2 -i&lt;段落。长度

var paragraphs = document.getElementsByTagName('p'),
    firstParagraph = paragraphs[0],
    link = document.createElement('a');
    link.innerHTML = 'Show more';
    link.setAttribute('class' , 'link');
    link.setAttribute('href' , '#');
    firstParagraph.appendChild(link);
        for(var i = 0 ; i <= paragraphs.length-1 ; i++){
          if( i === 0 ){
            continue
          }
          console.log("hellp",paragraphs[i]);
          paragraphs[i].classList.add('hide')
        }

最新更新