2016-08-11 27 views
0

JavaScriptで私のコードに問題があります。愚かな間違いですが、見つけられません...エラーが発生します。コードは、それが私はそれを修正することができますどのように...(ようにTask 1Task 2Task 3とのヘッダを持っているタスクを作成する)必要がある何をするようだにもかかわらずJavascript Uncaught TypeError:未定義のプロパティを設定できません

Uncaught TypeError: Cannot set property 'innerHTML' of undefined

?たぶん私の仕事に番号をつけたヘッダーを付ける短い方法がありますか? 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 = 1のための 'よりも、私は< = hmore.length; i ++){' –

答えて

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

アレイ状オブジェクトはゼロインデックス付きです。

長さは、オブジェクト内の項目の数です。

これは、あなたがそれで3つの項目の配列を持っている場合、彼らはインデックス0、1で存在することを意味し、あなたが最後を超え1行っているi == hmore.lengthだから、2

あなたが、私はそれが(VAR I = 0; iのhmore.lengthを<;私は++)のために `すべきだと思います<ない<=

+0

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

関連する問題