基本上当用户在"添加任务"中输入内容时字段并按下添加任务按钮,输入的内容显示在任务列表中,当用户单击"显示下一个任务"时,应该在任务列表数组中输入最后一个内容,并将其显示在"下一个任务"文本框。
我的代码:
var taskList = [];
var $ = function (id) { return document.getElementById(id); }
var addTask = function()
{
var newTask = $("new_task").value;
taskList.push(newTask);
display();
}
var display = function()
{
var outString = "";
document.getElementById("new_task").value = "";
for (var i in taskList)
{
outString += taskList[i] + "\n";
}
$("task_list").value = outString;
}
var finalTask = function()
{
document.getElementById("new_task").value = "";
document.getElementById("next_task").value = taskList;
var nextTask = $("task_list").value;
taskList.shift(nextTask);
display();
if (nextTask == "")
{
alert("No tasks remaining");
}
}
window.onload = function()
{
$("add_task").onclick = addTask;
$("show_next_task").onclick = finalTask;
}
答案 0 :(得分:0)
看起来你只是用错误的名字调用方法。你有:
window.onload = function ()
{
$("add_task").onclick = addTask;
$("show_next_task").onclick = nextTask; // <-------------
}
但是你将你的函数命名为nextTasks
。
修改强>
您的nextTasks
方法也出现错误:
var nextTasks = function()
{
var nextTask = $("next_task").value;
taskList.shift(nextTasks); // <----------------
display();
}
在箭头处,您似乎将该函数作为参数传递,您可能想要传递var nextTask
。
通过提供更易于区分的变量和函数名称,您可以节省很多麻烦。这可能看起来很乏味,但这种错误很常见。