用户可以在输入框中输入一个周期内需要做的事情,在按下回车时会保存至本地存储,即使浏览器关闭也不会丢失数据

注:该案例需引入jquery.min.js,请提前下载

tudolist.html(首页结构代码)

<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><metaname="viewport"content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/><title>ToDoList—最简单的待办事项列表</title><link rel="stylesheet" href="css/index.css" /><script src="js/jquery.min.js"></script><script src="js/todolist.js"></script></head><body><header><section><label for="title">ToDoList</label><inputtype="text"id="title"name="title"placeholder="添加ToDo"required="required"autocomplete="off"/></section></header><section><h2>正在进行 <span id="todocount"></span></h2><ol id="todolist" class="demo-box"></ol><h2>已经完成 <span id="donecount"></span></h2><ul id="donelist"></ul></section><footer>Copyright &copy; 2014 todolist.cn</footer></body>
</html>

tudolist.js代码

$(function () {//   alert(11);//   1. 按下回车 把完整数据 存储带本地存储里面// 存储的数据格式  var todolist = [{title: "xxx", done: false}]load();$("#title").on("keydown", function (event) {if (event.keyCode === 13) {if ($(this).val() === "") {alert("内容不能为空,请重新输入");} else {//   先读取本地存储原来的数据var local = getDate();//   console.log(local);//   把local数组进行更新数据 把最新的数据追加给local数组local.push({ title: $(this).val(), done: false });//   把这个数组local 存储给本地存储saveDate(local);//   toDoList 本地存储数据渲染加载到页面load();$(this).val("");}}});// toDoList 删除操作$("ol, ul").on("click", "a", function () {// 先获取本地存储的数据var data = getDate();// console.log(data);// 修改数据var index = $(this).attr("id");// console.log(index);data.splice(index, 1);// 保存到本地存储saveDate(data);// 重新渲染页面load();});// toDoList 正在进行和已完成选项操作$("ol, ul").on("click", "input", function () {// 先获取本地存储的数据var data = getDate();// 修改数据var index = $(this).siblings("a").attr("id");// data[?].done = ?data[index].done = $(this).prop("checked");// console.log(data);// 保存到本地存储saveDate(data);// 重新渲染页面load();});//   读取本地存储的数据function getDate() {var data = localStorage.getItem("todolist");if (data !== null) {//  本地存储里面的数据是字符串格式的 但是我们需要的是对象格式的return JSON.parse(data);} else {return [];}}//   保存本地存储数据function saveDate(data) {localStorage.setItem("todolist", JSON.stringify(data));}//   渲染加载数据function load() {// 读取本地存储的数据var data = getDate();// console.log(data);// 遍历之前先清空ol里面的元素内容$("ol, ul").empty();var todoCount = 0; // 正在进行的个数var doneCount = 0; // 已经完成的个数// 遍历这个数据$.each(data, function (i, n) {//   console.log(n);if (n.done) {$("ul").prepend("<li> <input type='checkbox' checked='checked'> <p>" +n.title +"</p> <a href='javascript:;' id=" +i +"></a></li>");doneCount++;} else {$("ol").prepend("<li> <input type='checkbox' > <p>" +n.title +"</p> <a href='javascript:;' id=" +i +"></a></li>");todoCount++;}});$("#todocount").text(todoCount);$("#donecount").text(doneCount);}
});

todolist(网页版记事本)相关推荐

  1. 网页版MC服务器搭建+汉化

    前言 不知道大家最近有没有听说有人把mc的java版代码反编译成了js代码,然后嵌入到了网页当中呢 发布了mc的网页版.有兴趣的同学可以去这里看看.好了,全剧终. 当大家开始游玩的时候是不是发现了一个 ...

  2. 通过 railway 和 code-server 搭建网页版的 visual studio code

    背景和需求 我有一个 iPad 平板, 平时出门碎片时间在 leetcode 和 binarysearch 上刷题[1], 因为可以直接在网页里敲代码. 除了用一些SSH Terminal[2]远程登 ...

  3. 能做pc网页吗_梦幻西游网页版:如今还能抽金伙伴吗?玩家亲自验证,感觉还行...

    说起"金伙伴",相信各位玩家并不陌生.作为梦幻西游网页版中的强力助手,他们的各方面表现相当优秀,因此不少玩家都想抽到.然而,越珍贵的东西就越难抽出来,想要在荟英楼看到金伙伴,并不是 ...

  4. 如何打印网页版的发票_梦幻西游网页版:陷入瓶颈期,如何快速提升战力?氪金能解决问题...

    在梦幻西游网页版中,战力的高低直接影响着玩家的游戏体验,因此大家都将注意力放到了这上面.然而,提升战力并非易事,随着等级越来越高,难度也会逐渐提升.前不久,就有一位玩家遇到了麻烦,据他描述,目前的战力 ...

  5. Python 写了一个网页版的「P图软件」,惊呆了!

    作者 | 小欣 来源 | Python爱好者集中营 今天是开工第一天,这篇文章可以算作是虎年的第一篇干货技术类文章了,今天小编用Python做了一个网页版的"P图软件",大致的流程 ...

  6. Facebook的一些基本操作(网页版)

    这篇文章主要讲的是利用 JavaScript SDK 进行Facebook的登录,点赞和分享功能. 前期准备 1,注册一次Facebook账号,新建一个应用取到应用id 2,引进Facebook的SD ...

  7. r语言 服务器网页版ide RStudio Server 简介

    目录 介绍 安装R 安装RStudio Server 创建账号 开始使用 注意事项 无法打开登录页 多用户使用 服务卡死 端口占用 外网使用 终端工具推荐 RStudio Server是网页版的RSt ...

  8. 真香!使用 Goland 网页版实现真正的云开发

    云原生玩家往往都是左手 MacBook,右手 Goland,但由于大部分人的 MacBook 硬件资源有限,基本上无法丝滑地使用 Goland.即使你是 8C16G 的高富帅,多开几个 PornHub ...

  9. vue中进行判断不同字段的判断,主要是区分于微信小程序和网页版之间写法

    1 网页版的vue字段的判断的写法如下: v-if="item.scoreItemState == 0" v-if="item.scoreItemState == 1&q ...

最新文章

  1. 拆卸台式电脑主机,cpu,硬盘,内存条等
  2. uwsgi基础——最佳实践和问题
  3. lecture 3 qkine- start with connections
  4. Python将数据插入到数据库时遇到单引号插入错误的问题
  5. 云栖专辑 | 阿里开发者们的第12个感悟:多维思考,胜过盲目苦干
  6. centos linux怎么安装mysql_CentOS-Linux系统下安装MySQL
  7. Ubuntu的奇技淫巧
  8. 如何使用nginx配置SSL证书?
  9. 机器学习-多元梯度下降
  10. DXUT框架剖析(5)
  11. python狗屁不通文章生成器_狗屁不通文章生成器,哈哈哈
  12. Linux内核网络:实现与理论--序言
  13. android 开机启动无效,Android实现开机自启动无效问题
  14. html输入QQ自动获取QQ头像,代码实现WordPress评论框输入QQ号码自动获取QQ头像和昵称...
  15. html详细笔记及练习的几个例子
  16. 拆卸计算机主机的步骤是,拆卸主机的图解步骤
  17. 论文发表-关于深度学习在问答系统和对话系统方面的应用研究-2018到2019年
  18. margin-top遇到的小问题
  19. 计算机教学楼起名,学校教学楼起名(文雅的教学楼取名)
  20. 计算机网络研学日志,2020小学信息技术工作研修日志

热门文章

  1. 获取抖音抖店订单相关信息,用于私域引流脚本
  2. 全角空格和半角空格的运用
  3. SpringBoot+Vue项目实战-QG
  4. Linux程序下载到板子上,uclinux系统移植到bf561板子上过程
  5. 【字符串】leet459.重复的子字符串(C/C++/Java/Python/Js)
  6. DE2-115学习计划
  7. sql 笔试题——各个视频的平均完播率
  8. QQ红钻认领音乐场景体验QQ2006新功能(转)
  9. Android——仿京东淘宝分类页面
  10. a的b次方对p取模 a乘b对p取模 快速幂