javascript - 如何向我的待办事项应用程序添加删除功能?
问题描述
const btnTodo = document.querySelector('.btnTodo');
const todoList = document.querySelector('.todoList');
const removeBtn = document.querySelector('.btnRemove');
btnTodo.addEventListener('click', () => {
var todoText = txtTodo.value.trim();
var listItem = document.createElement('p');
listItem.innerHTML = todoText + ' <button class="btn btnRemove"><i class="big fas fa-trash"></i></button>' + '<br>';
todoList.append(listItem);
txtTodo.innerText = null;
});
removeBtn.addEventListener('click', () => {
//WHAT TO DO??
});
我在高中。我想在我的 todo 应用程序中包含一个删除功能。我是根据学校给我的知识做到这一点的。
解决方案
好的,有多种方法可以做到这一点,这是其中一种方法:
let txtTodo = document.querySelector('.txtTodo');
let btnTodo = document.querySelector('.btnTodo');
let todoList = document.querySelector('.todoList');
btnTodo.addEventListener('click', () => {
let todoText = txtTodo.value.trim();
let listItem = document.createElement('p');
listItem.innerHTML = todoText + ' <button class="btn btnRemove"><i class="big fas fa-trash"></i></button>' + '<br>';
todoList.append(listItem);
txtTodo.innerText = null;
listItem.querySelector('.btnRemove').addEventListener("click", () => {
listItem.remove()
});
});
要记住的一件事是,事先将所有删除按钮存储在一个变量中(正如您在第 3 行中尝试的那样)是行不通的,因为它不是实时集合,因此当您在 DOM 中附加新按钮时存储的集合将变得陈旧。因此,就像我在上面所做的那样,将事件侦听器添加到新附加的元素是一个好主意。
此外,您应该这样做txtTodo.value = "";
而不是txtTodo.innerText = null;
清除输入。
祝你好运!
推荐阅读
- python - Pandas groupy - 我可以将它用于不同行集的不同功能吗?
- linux - WebSocket Nginx 426 需要升级
- integer - 如何将“b 变量”声明为负数?
- python - 使用 csv 文件查找单引号中的逗号
- android-studio - 可以在 Android Studio 中打开使用 Gluon 构建的 JavaFX 项目进行进一步修改吗?
- python - Python 自定义类型无法识别
- python - 在 Python Jupyter Notebook 中重启内核并处理命令行弹出
- rust - 匹配 Result<> 的类型
- javascript - 从 JSON 对象生成材质时间线
- discord.py - 如何删除 discord.py 中的频道?