Javascript 未捕获的类型错误:无法设置未定义的属性
2016-08-11
6237
我的 JavaScript 代码有问题,可能是一些愚蠢的错误,但我找不到它... 发生错误。
Uncaught TypeError: Cannot set property 'innerHTML' of undefined
尽管代码似乎做了它应该做的事情(创建具有
任务 1
、
任务 2
、
任务 3
等标题的任务).. 我该如何解决这个问题?也许有一种更简便的方法可以为我的任务编号标题?
document.addEventListener("DOMContentLoaded", function(){
var add=document.querySelector("#addTaskButton");
var tasklist=document.querySelector("#taskList");
var clickcount=0;
add.addEventListener("click",function(event){
var newTask=document.createElement("li");
tasklist.appendChild(newTask);
var newh1=document.createElement("h1");
newTask.appendChild(newh1);
clickcount+=1;
if(clickcount==1){
var h1=document.querySelector("h1");
h1.innerText="Task 1";
}else if(clickcount>1){
var hmore=document.getElementsByTagName("h1");
for(var i=1;i<=hmore.length;i++){
hmore[i].innerHTML="Task "+(i+1);
}
}
})
});
1个回答
for(var i=1;i<=hmore.length;i++){
JavaScript 中类似数组的对象以零为索引。
长度是对象中的项目数。
这意味着,如果您有一个包含 3 个项目的数组,则它们位于索引 0、1 和 2。
因此,当
i == hmore.length
时,您已经
超出末尾一个
。
您需要测试
<
而不是
<=
Quentin
2016-08-11