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