2012-10-18 200 views
-2

當我使用下面的代碼時,它什麼都不輸出到屏幕上。爲什麼我的JavaScript for循環輸出什麼都沒有

我有全局數組稱爲tasks[],這是我試圖運行函數:

function addTask() { 
'use strict'; 

var task = document.getElementById('task'); 
var outputTask = document.getElementById('taskOutput'); 
var outputList = document.getElementById('outputList'); 

var taskMessage = ''; 

if (task.value) { 
    tasks[tasks.length] = task; 
    taskMessage = 'You have ' + tasks.length + ' task(s) in your to-do list.'; 

    if(output.textContent !== undefined) { 
     outputTask.textContent = taskMessage; 
    } else { 
     outputTask.innerText = taskMessage; 
    } 


    for (var i = 0, count = tasks.length; i <= count; i++) { 
     var listItem = document.createElement('h3'); 
     var textNode = document.createTextNode(tasks[i]); 
     listItem.appendChild(textNode); 
     outputList.appendChild(listItem); 
    } 

}// End task.value IF. 
return false; 
}// end addTask() function 

下面是JavaScript已經訪問HTML。當我在任務輸入字段中輸入一個值並按下提交時,我期待輸出到outputList div中的屏幕作爲H3。

<form id="theForm" name="theForm" /> 
<fieldset> 
<legend>Enter the starting and ending dates of the task</legend> 
<label for="start">Start</label> 
<input type="text" name="start" id="start" placeholder="MM/DD/YYYY or Today" required /> 

<label for="end">End</label> 
<input type="text" name="end" id="end" placeholder="MM/DD/YYYY" required /> 
</fieldset> 
<fieldset><legend>Enter a Task For This Time Period</legend> 
<div> 
<label for="task">Task</label> 
<input type="text" name="task" id="task" required /> 
</div> 
</fieldset> 
<input type="submit" value="Add It!" id="submit" /> 
</form> 
</div> 

<div id="output"></div> 
<div id="taskOutput"></div> 
<div id="outputList"></div> 
+0

確定'task.value'定義? – SomeKittens

+0

您希望導致輸出運行的代碼?該代碼使用的變量的值是什麼?他們是你期望的嗎?對於每個答案是「不」,問「爲什麼?」。現在你已經開始調試了。 –

+0

確保按預期的以下行評估 「if(task.value)」and 「count = tasks.length;」 – Tariqulazam

回答

1

這是因爲您正在循環超出數組中的最後一項。

更改此:

for (var i = 0, count = tasks.length; i <= count; i++) { 

到:

for (var i = 0, count = tasks.length; i < count; i++) { 
+0

哇謝謝你!似乎工作。現在我必須弄清楚爲什麼當我按下提交時它會加倍 –

相關問題