Javascript Uncaught TypeError:无法设置undefined

时间:2016-08-11 12:25:18

标签: javascript

我的JavaScript代码存在问题,可能是一些愚蠢的错误,但我无法找到它......发生错误。

  

未捕获的TypeError:无法设置属性' innerHTML'未定义的

即使代码似乎做了它应该做的事情(创建标题为Task 1Task 2Task 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 个答案:

答案 0 :(得分:2)

for(var i=1;i<=hmore.length;i++){

JavaScript中的类似数组的对象是零索引的。

长度是对象中的项目数。

这意味着如果你有一个包含3个项目的数组,它们就存在于索引0,1和2中。

所以当i == hmore.length你已经一个超越结束时

您需要测试<而不是<=