jquery 实现toDoList功能增删改操作

在这里插入图片描述
在这里插入图片描述

$(function(){
    //1.按下回车,把完整数据存储到本地存储里面
    load();
    $("#title").on("keydown",function(event){
        if(event.keyCode === 13){
            //先读取本地存储原来的数据
            var local = getData();
            console.log(local);
            //把local数组进行更新数据 把最新的数据追加给local数组
            local.push({title:$(this).val(),done:false});
            //把这个数组local 存储给本地存储
            saveData(local);
            //2.toDoList 本地存储数据渲染加载到页面
            load();
        }
    });

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

    //保存本地存储数据
    function saveData(data){
        localStorage.setItem("todolist",JSON.stringify(data));
    }

    //渲染加载数据
    function load(){
        var data = getData();
        console.log(data);
        //遍历之前先要清空<ol>里面的元素内容
        $("ol").empty(); 
        $.each(data,function(i,n){
            $("ol").prepend("<li><input type='checkbox'/><p>"+n.title+"</p><a href='javascript:;'/> </li>")
        });
    }

});

在这里插入图片描述

 //toDoList 删除操作
    $("ol").on("click","a",function(){
        //先获取本地存储
        var data = getData();
        console.log(data);
        //修改数据
        var index = $(this).attr("id");
        console.log(index);
        data.splice(index,1);
        //保存到本地存储
        saveData(data);
        //重新渲染数据
        load();
    });

在这里插入图片描述

    // 4. toDoList 正在进行和已完成选项操作
    $("ol, ul").on("click", "input", function() {
        // alert(11);
        // 先获取本地存储的数据
        var data = getData();
        // 修改数据
        var index = $(this).siblings("a").attr("id");
        console.log(index);
        // data[?].done = ?
        data[index].done = $(this).prop("checked");
        console.log(data);

        // 保存到本地存储
        saveData(data);
        // 重新渲染页面
        load();
    });
    // 读取本地存储的数据 
    function getData() {
        var data = localStorage.getItem("todolist");
        if (data !== null) {
            // 本地存储里面的数据是字符串格式的 但是我们需要的是对象格式的
            return JSON.parse(data);
        } else {
            return [];
        }
    }
    // 保存本地存储数据
    function saveData(data) {
        localStorage.setItem("todolist", JSON.stringify(data));
    }
    // 渲染加载数据
    function load() {
        // 读取本地存储的数据
        var data = getData();
        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);

    }

最后呈现效果
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值