您正在尝试了解并修复运行以下代码时遇到的控制台错误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解释,但我不确定它是如何修复的?
非常感谢提前
答案 0 :(得分:2)
您的循环超出了要解决的段落数量,您必须:
1 - paragraphs.length-1
或
2 - i&lt; 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')
}
答案 1 :(得分:2)
你的循环中没有数组。
这样做:
for(var i = 0 ; i < paragraphs.length ; i++)
而不是
for(var i = 0 ; i <= paragraphs.length ; i++)
您可以优化循环直接从第二项开始(“ i = 1 而不是” i = 0 “)