javascript - JS 只处理一张卡而不是所有卡
问题描述
我正在尝试构建一个 Web 应用程序来管理任务。我在我的 HTML 中使用了烧瓶和 jinja。我添加了一个 JS 函数来在单击按钮时删除任务。但由于添加的任务是使用 jinja,所以该功能仅适用于第一个任务。我曾尝试使用 document.querySelectorAll 而不是 document.querySelector 但没有解决问题,该功能完全停止工作。这是代码。
JS
// SELECTORS
const buttons = document.querySelectorAll(".card-footer");
// EVENT LISTENERS
buttons.addEventListener("click", deleteCheck);
// FUNCTIONS
function deleteCheck(event) {
const item = event.target;
const todo = item.closest(".card");
// Delete the todo
if (item.classList[0] === "trash-btn") {
// Animation
todo.classList.add("fall");
todo.addEventListener("transitionend", function () {
todo.remove();
});
}
// Mark as done
if (item.classList[0] === "complete-btn") {
todo.classList.toggle("completed");
}
}
HTML
<div class="row row-cols-1 row-cols-md-3 g-4">
{% for i in range(0, len) %}
<div class="col">
<div class="card h-100">
<div class="card-body">
<h5 class="card-title">{{ tasks[i][0] }}</h5>
<p class="card-text">{{ tasks[i][1] }}</p>
</div>
<div class="card-footer">
<div class="sessions">
<small>Session(s) left: {{ tasks[i][2] }}</small>
</div>
<div class="action">
<button class="complete-btn"><i class="fas fa-check"></i></button>
<button class="trash-btn"><i class="fas fa-trash"></i></button>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
解决方案
推荐阅读
- for-loop - 如何将for循环中的图像名称更改为特定数字
- c++ - 使用容器提升 X3 解析结构
- c - 如何将文件中的信息存储到C中的内存中
- boolean - 大型布尔表达式的替换
- c - 如何使用 malloc 和 realloc 使用 C 分配字符串
- python - 如何为发布配置不同的请求正文并在 django-rest-framework 中对同一端点进行调用
- laravel - 试图理解 model::make() x model::create()
- javascript - 如何在页面加载时在 HTML 选择选项中选择 JSON 结果
- javascript - WebPack-React-TypeScript:加载 CSS 和导出类型
- .net - 加载类型库/DLL(任何 Nuget 包)时出错