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

原生JS Todo应用删除任务后新增时自动恢复问题修复求助

问题原因

当前删除逻辑仅移除了页面渲染出的DOM节点,没有同步删除数据源todoData数组中对应的任务数据。每次新增任务后都会执行render()方法重新渲染,该方法会遍历完整的todoData数组生成所有任务节点,所以此前仅删除了DOM的任务会被重新渲染出来。

修复方法

修改删除按钮的点击事件逻辑,删除操作时先移除todoData数组中对应的任务项,再调用render()刷新页面即可。

修改后的代码(仅需调整删除按钮的事件绑定部分)
// 把原代码中btnRemove的点击事件替换为以下内容
const btnRemove = li.querySelector('.todo-remove');
btnRemove.addEventListener('click', function(){
    // 查找当前任务在数据源中的索引并删除
    const itemIndex = todoData.indexOf(item);
    if (itemIndex !== -1) {
        todoData.splice(itemIndex, 1);
    }
    // 重新渲染页面
    render();
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:24:03