2016-08-11 68 views
0

我的JavaScript代碼有問題,可能是一些愚蠢的錯誤,但我找不到它......發生錯誤。Javascript未捕獲TypeError:無法設置undefined的屬性

Uncaught TypeError: Cannot set property 'innerHTML' of undefined

即使代碼似乎做自己應該(創建其中有Task 1Task 2Task 3等頭任務)。我怎樣才能解決呢?也許有一個更短的方式來給我的任務編號標題?在JavaScript

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

}) 

}); 
+3

我認爲它應該是爲'(VAR I = 0;我

回答

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

陣列狀物體都爲零索引。

長度是對象中項目的數量。

這意味着,如果你在這3個項目的陣列,它們以索引0,1存在,和2

所以當i == hmore.length你已經走了一個超越結束

您需要測試<<=

+0

https://jsfiddle.net/880ax09m/1/ – lordkain

相關問題