首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >localStorage方法

localStorage方法
EN

Stack Overflow用户
提问于 2013-02-22 03:39:24
回答 1查看 347关注 0票数 0
代码语言:javascript
复制
function Todo(id, task, who, dueDate) {
    this.id = id;
    this.task = task;
    this.who = who;
    this.dueDate = dueDate;
    this.done = false;
}    

function updateDone(e) { 
      var spanClicked = e.target;
      var id = spanClicked.parentElement.id;
      var done = spanClicked.parentElement.done;
      spanClicked.innerHTML = " ✔ ";
      spanClicked.setAttribute("class", "done");

      var key = "todos" + done;
      localStorage.setItem(key, "true");
      console.log(key);
    }

在最后一个函数的第二部分中,当为localStorage单击目标对象时,我尝试将done属性的值更改为"true“。相反,当我在web控制台中检查localStorage时,该对象的值不会改变,而是会将另一个名为"todosundefined:'true'“的对象添加到localStorage中。我不明白为什么当我单击一个对象时,某些东西会作为一个单独的、未定义的对象添加到localStorage中,而不是更改我所单击的对象的值。有什么建议可以修改它,以便更改我为localStorage单击的对象的done值?

EN

回答 1

Stack Overflow用户

发布于 2013-02-22 05:06:02

正如在上面的注释中提到的,DOM对象上没有done属性。我不完全确定您要做什么,但是为了获取DOM对象的类属性的内容,您应该使用className属性。例如:

代码语言:javascript
复制
var done = spanClicked.parentElement.className;

话又说回来,根据您发布的代码,这似乎没有任何意义。我假设您想要使用本地存储来跟踪待办事项列表中的哪些项目已经完成。在这种情况下,存储所有已完成项的id数组不是更好吗(或者相反)?您不能将数组直接存储在本地存储中,但是可以使用例如JSON.stringify()来获取数组的字符串表示形式,然后可以存储该字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15010788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档