Javascript 添加 classList.add 到数组时出现控制台错误

Javascript console error when adding classList.add to array

您好,我在尝试理解和修复 运行 以下代码 full code here

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

错误显示

Cannot read property 'classList' of undefined

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

非常感谢

你的循环超过了你的段落数要解决它你必须:

1 - paragraphs.length-1

2 - 我 < paragraphs.length

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')
        }

你在你的循环中超出了你的阵列。

这样做:

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

而不是

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

您可以优化循环以直接从第二个项目开始(“i = 1 而不是“i =0”)