Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript can';t从待办事项列表中删除自定义待办事项列表项_Javascript - Fatal编程技术网

Javascript can';t从待办事项列表中删除自定义待办事项列表项

Javascript can';t从待办事项列表中删除自定义待办事项列表项,javascript,Javascript,我用一些预定义的todo列表项创建了一个todo列表,还可以通过提示符命令在列表中设置您自己的todo。这段代码的问题是,当我试图删除我创建的项目时,我不能这样做。虽然我可以删除预定义的项目。代码如下: let addTodo=document.getElementById('add'); 让delTodo=document.getElementById('delete'); 设ul=document.querySelector('ul'); 让li=document.querySelecto

我用一些预定义的todo列表项创建了一个todo列表,还可以通过提示符命令在列表中设置您自己的todo。这段代码的问题是,当我试图删除我创建的项目时,我不能这样做。虽然我可以删除预定义的项目。代码如下:

let addTodo=document.getElementById('add');
让delTodo=document.getElementById('delete');
设ul=document.querySelector('ul');
让li=document.querySelectorAll('li');
addTodo.addEventListener('单击',()=>{
让add=prompt('addanewtodo');
如果(添加长度>=1){
让newLi=document.createElement('li');
让newLiText=document.createTextNode=add;
newLi.append(newLiText);
ul.appendChild(newLi);
}否则{
警报('发生错误。请重试');
}
});
delTodo.addEventListener('单击',()=>{
让deleteTodo=prompt('要删除哪个todo?');
让firstTodo=document.querySelector(“#first”);
设secondTodo=document.querySelector(“#second”);
设thirdTodo=document.querySelector('third');
如果(deleteTodo==‘研究’){
ul.removeChild(第一个TODO);
}else if(deleteTodo==='Eat'){
ul.removeChild(第二个TODO);
}else if(deleteTodo==='Watch'){
thirdTodo.style.display='none';
}否则{
警报(“发生错误”);
}
});
正文{
保证金:0;
填充:0;
背景颜色:珊瑚;
字体系列:“Playfair显示”,草书;
字母间距:0.1米;
颜色:耐火砖;
}
.包装纸{
利润率:10px自动;
边框:3件实心耐火砖;
最大宽度:300px;
文本对齐:居中;
}
.桌子{
保证金:20px自动;
填充:10px;
}
.表ul{
列表样式类型:无;
}
李表{
文本对齐:左对齐;
利润率:20px 0px 20px-40px;
边框:1px纯红;
填充:10px;
}
.表h3{
文本对齐:左对齐;
}
钮扣{
利润率:10px 10px;
填充物:5px;
字体系列:“Playfair显示”;
背景颜色:珊瑚;
颜色:耐火砖;
边框:2块实心耐火砖;
}

事項清單
在这里列出待办事项
    学习数学 吃早餐 看电影
添加新待办事项 删除待办事项
您没有做错任何事情,只是没有编写代码来删除任何TODO

我将为您描述它,但您需要研究它并编写代码

添加新的待办事项时,您需要

您可能希望将用户提供的TODO名称用于

然后在删除代码中,从用户输入中去掉空格,并查找一个元素,该元素的
id

如果
阻塞,不要执行大量的
。只需按id查找元素,如果有,则将其删除。如果没有,则发出警报,告知用户找不到


对于下一个级别,在创建todo时,将“\uu todo-”放在id前面,并在页面上显示一个下拉框以删除它们,或者(更好的UX),在todo上放置一个按钮以允许用户删除它。

您不是在动态地执行此操作,我要做的是获取所有
li
并找到一个包含用户在提示符中输入的文本的文本,然后删除该元素

let addTodo=document.getElementById('add');
让delTodo=document.getElementById('delete');
设ul=document.querySelector('ul');
让li=document.querySelectorAll('li');
addTodo.addEventListener('单击',()=>{
让add=prompt('addanewtodo');
如果(添加长度>=1){
让newLi=document.createElement('li');
让newLiText=document.createTextNode=add;
newLi.append(newLiText);
ul.appendChild(newLi);
}否则{
警报('发生错误。请重试');
}
});
delTodo.addEventListener('单击',()=>{
让deleteTodo=prompt('要删除哪个todo?');
const listItems=document.querySelectorAll('li');
让listItemToRemove=null;
对于(让李列出列表项){
如果(li.innerText==deleteTodo){
listItemToRemove=li;
}
}
如果(listItemToRemove){
listItemToRemove.remove();
}
});
正文{
保证金:0;
填充:0;
背景颜色:珊瑚;
字体系列:“Playfair显示”,草书;
字母间距:0.1米;
颜色:耐火砖;
}
.包装纸{
利润率:10px自动;
边框:3件实心耐火砖;
最大宽度:300px;
文本对齐:居中;
}
.桌子{
保证金:20px自动;
填充:10px;
}
.表ul{
列表样式类型:无;
}
李表{
文本对齐:左对齐;
利润率:20px 0px 20px-40px;
边框:1px纯红;
填充:10px;
}
.表h3{
文本对齐:左对齐;
}
钮扣{
利润率:10px 10px;
填充物:5px;
字体系列:“Playfair显示”;
背景颜色:珊瑚;
颜色:耐火砖;
边框:2块实心耐火砖;
}

事項清單
在这里列出待办事项
    学习数学 吃早餐 看电影
添加新待办事项 删除待办事项
要删除待办事项,您必须首先识别它。对于该元素,将
id
属性添加到
li
元素

如果两个
TODO
具有相同的名称,则以下解决方案可能会失败,因为您的ID必须是唯一的

为此,您必须找到一种方法,在动态创建元素(li)时唯一地标识它

let addTodo=document.getElementById('add');
让delTodo=document.getElementById('delete');
设ul=document.querySelector('ul');
让li=document.querySelectorAll('li');
addTodo.addEventListener('单击',()=>{
让add=prompt('addanewtodo');
如果(添加和添加长度>=1){
让newLi=document.createElement('li');
newLi.id=add.trim();
让newLiText=document.createTextNode(添加);
newLi.append(newLiText);
ul.appe