toDoList的做法

408 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第8天,点击查看活动详情

  • 文本框里面输入内容,按下回车,就可以生成待办事项。
  • 点击待办事项复选框,就可以把当前数据添加到已完成事项里面。
  • 点击已完成事项复选框,就可以把当前数据添加到待办事项里面。但是本页面内容刷新页面不会丢失。

image.png

1. toDoList按下回车把新数据添加到本地存储里面

  • 切记︰页面中的数据,都要从本地存储里面获取,这样刷新页面不会丢失数据,所以先要把数据保存到本地存储里面。
  • 利用事件对象.keyCode判断用户按下回车键。
  • 声明一个数组,保存数据。
  • 先要读取本地存储原来的数据(声明函数getData) ),放到这个数组里面。
  • 之后把最新从表单获取过来的数据,追加到数组里面。
  • 最后把数组存储给本地存储(声明函数savaDate))

image.png

读取和存储本地数据的方法

function getDate() {
        var data = localStorage.getItem("todolist");
        if (data !== null) {
            // 本地存储里面的数据是字符串格式的 但是我们需要的是对象格式的
            return JSON.parse(data);
        } else {
            return [];
        }
    }

image.png

以下是将本地数据渲染加载到网页页面

  • 因为后面也会经常渲染加载操作,所以声明一个函数load,方便后面调用
  • 先要读取本地存储数据。(数据不要忘记转换为对象格式)
  • 之后遍历这个数据($.each()),有几条数据,就生成几个小li添加到ol里面。

image.png

image.png

以下是删除操作

  • 点击里面的a链接,不是删除的li,而是删除本地存储对应的数据。
  • 核心原理∶先获取本地存储数据,删除对应的数据,保存给本地存储,重新渲染列表li
  • 我们可以给链接自定义属性记录当前的索引号
  • 根据这个索引号删除相关的数据----数组的splice(i, 1)方法存储修改后的数据,然后存储给本地存储
  • 重新渲染加载数据列表
  • 因为a是动态创建的,我们使用n方法绑定事件

数组中删除元素的方法

image.png

注意:第三个框的意思是将input的固有属性checked赋值给相应的done作为修改值,即修改为true。