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”)
您好,我在尝试理解和修复 运行 以下代码 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”)