javascript - 将项目存储到本地存储似乎不起作用

标签 javascript

我正在为自己制作待办事项应用程序。并尝试将数据保存在本地存储中。如果我做错了什么,我只想问问我的代码。

my html :
    <div id="todo1">
        <center><h1>All Tasks</h1></center>
        <div id="todo"></div>
        <form class="add-items">
            <center><input type="text" name="item" placeholder="eg. Buy bread" class="add_task" required></center>
        <center><input type="submit" class="add" value="add task"/></center>
        </form>

    </div>
my javascript:
    const addItems = document.querySelector('.add-items'); 
    const items = JSON.parse(localStorage.getItem('items')) || [];

    function addItem(e) {
        e.preventDefault();
        let todo = document.querySelector('#todo');
        let input = (this.querySelector('[name=item]').value);
        let text = document.createTextNode(input);
        let markup = `<center><div class="task">${input}<i class="far fa-check-circle"></i><i class="far fa-trash-alt" id="trash"></i></div></center>`;
        todo.insertAdjacentHTML('beforeend', markup);
        const item = {
            task:input
        };
        items.push(item);
        localStorage.setItem('items', JSON.stringify(items));
        this.reset();
    }

    addItems.addEventListener('submit', addItem);

最佳答案

实际上,您存储到 localStorage 中的项目最初并未绑定(bind)到 html dom,这就是为什么您无法在 View 中看到来自 localStorage 的项目。

[http://jsfiddle.net/r76xots2/9/]

这里是您的代码的工作链接,其中我创建了一个通用函数,该函数将从 localStorage 更新您的 dom,每次您想要更新时都可以使用它。

我还创建了一个支票,因此不能将同一项目插入两次。如果您不需要它,您可以将其删除或发表评论。

关于javascript - 将项目存储到本地存储似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58047848/

相关文章:

JavaScript - 缺失;声明之前

javascript - 如何判断一个拖放操作是否指向浏览器窗口之外的某个地方?

javascript - 使用 JQuery + React 使 HTML Bootstrap 元素动态化?

javascript - 具有成员名称的唯一数组

javascript - youtube 视频暂停时触发事件

javascript - DeviceOrientationEvent Alpha、Beta、Gamma 值...有人可以帮助解释如何可视化吗?

javascript - Sinon stub 调用假参数

javascript - 通过 CSS3 模拟垂直轮胎上的旋转动画

javascript - bookshelf.js 关系有很多错误

javascript - React redux 收藏夹 Action