Javascript Can';我不知道如何将待办事项添加到已完成的部分

Javascript Can';我不知道如何将待办事项添加到已完成的部分,javascript,html,Javascript,Html,为了测试,我在html文档中硬编码了两个待办事项。但是,当我在文本字段中键入项目时,我可以将这些项目从未完成部分添加到已完成部分;我无法通过“完成”按钮将新项目添加到已完成部分。我在谷歌上搜索答案已经有一段时间了,但我真的不知道我会搜索什么来得到我问题的答案。任何帮助都将不胜感激。非常感谢。这是我的密码 document.addEventListener('DOMContentLoaded',function(){ //从用户处获取任务 var addButton=document.getEl

为了测试,我在html文档中硬编码了两个待办事项。但是,当我在文本字段中键入项目时,我可以将这些项目从未完成部分添加到已完成部分;我无法通过“完成”按钮将新项目添加到已完成部分。我在谷歌上搜索答案已经有一段时间了,但我真的不知道我会搜索什么来得到我问题的答案。任何帮助都将不胜感激。非常感谢。这是我的密码

document.addEventListener('DOMContentLoaded',function(){
//从用户处获取任务
var addButton=document.getElementById('addButton');
//执行任务
var任务;
var createButton=函数(){
var button=document.createElement(“按钮”);
setAttribute(“类”、“完成按钮”);
setAttribute(“名称”、“完成按钮”);
button.innerHTML=“完成”;
返回按钮;
};
var completeButtons=document.getElementsByClassName('completeButton');
addButton.addEventListener(“单击”,函数(){
event.preventDefault();
//获得任务
task=document.getElementById('task');
var taskNumber=2;
//将任务添加到未完成列表中
var textNode=document.createTextNode(task.value);
var-button=createButton();
setAttribute(“id”,(taskNumber+1));
var liselement=document.createElement(“LI”);
appendChild(textNode);
追加子项(按钮);
document.getElementById('uncompleted-list').appendChild(listElement);
//清除文本字段
task.value=“”;
completeButtons[任务编号]=按钮;
});
//将任务标记为已完成
//控制台日志(完成按钮);
对于(变量i=0;i

待办事项应用程序
待办事项应用程序
输入任务:
添加
未完成的任务
  • 付完房租
  • 购买完整的食品杂货
完成的任务
  • 喂猫
创建的新“完成”按钮不会绑定到自定义的
单击处理程序。

这是因为JavaScript底部附近的
for
循环只在文件初始化时运行一次。这很好,只是代码不会应用于“添加”按钮创建的任何新按钮。为了解决这个问题,我确保在创建新按钮后,立即将它们绑定到相同的
click
函数。请参阅下面JavaScript中的我的评论

document.addEventListener('DOMContentLoaded',function(){
var addButton=document.getElementById('addButton');
var任务;
var createButton=函数(){
var button=document.createElement(“按钮”);
setAttribute(“类”、“完成按钮”);
setAttribute(“名称”、“完成按钮”);
button.innerHTML=“完成”;
//手动将此新按钮绑定到函数“moveToComplete”
按钮。添加EventListener(“单击”,移动完成);
返回按钮;
};
var completeButtons=document.getElementsByClassName('completeButton');
//如果要使用“事件”,请确保将其包含为参数
addButton.addEventListener(“单击”),函数(事件){
event.preventDefault();
task=document.getElementById('task');
var taskNumber=2;
var textNode=document.createTextNode(task.value);
var-button=createButton();
setAttribute(“id”,(taskNumber+1));
var liselement=document.createElement(“LI”);
appendChild(textNode);
追加子项(按钮);
document.getElementById('uncompleted-list').appendChild(listElement);
task.value=“”;
completeButtons[任务编号]=按钮;
});
var moveToComplete=函数(){
var task=this.parentElement;
task.parentElement.removeChild(任务);
task.removeChild(task.lastChild);
var textNode=document.createTextNode(task.innerHTML);
var liselement=document.createElement(“LI”);
appendChild(textNode);
document.getElementById('completed-list').appendChild(listElement);
}
对于(变量i=0;i

待办事项应用程序
输入任务:
添加
未完成的任务
  • 付完房租
  • 购买完整的食品杂货
完成的任务
  • 喂猫

非常感谢您。这很有道理。现在它在我的moveToComplete函数中抛出了一个异常,表示在语句task=this.parentElement中parentElement未定义。@JasonDelgado-hmm,现在呢?我移动了
moveToComplete