You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js+Express+EJS项目中实现点击删除待办列表项

核心实现思路:使用任务在数组中的索引作为唯一标识,通过表单隐藏域传递给后端删除接口,后端移除对应元素后刷新列表即可。

第一步:修改app.js添加删除任务路由

在现有app.post('/', ...)新增任务路由下方,新增以下代码:

// 删除任务路由
app.post('/delete-task', (req, res) => {
  const taskIndex = parseInt(req.body.taskIndex);
  // 校验索引合法性避免数组越界
  if (taskIndex >= 0 && taskIndex < tasks.length) {
    tasks.splice(taskIndex, 1);
  }
  res.redirect('/');
});

第二步:修改index.ejs添加删除按钮

将原有列表渲染部分的代码替换为以下内容,循环时获取数组索引,每个任务旁添加删除表单:

<!-- TODO LIST -->
<ul>
    <% tasks.forEach((task, index) => { %>
    <li>
        <%= task %>
        <!-- 删除表单,inline样式保证和任务文本同行显示 -->
        <form action="/delete-task" method="post" style="display: inline; margin-left: 8px;">
            <input type="hidden" name="taskIndex" value="<%= index %>">
            <button type="submit">删除</button>
        </form>
    </li>
    <% }); %>
</ul>

修改完成后重启服务即可实现点击删除按钮移除对应任务的效果。如果后续你改用数据库存储任务,将索引替换为数据库生成的唯一任务ID即可,逻辑基本一致。

内容的提问来源于stack exchange,提问作者Chris Faux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 05:45:07