每次单击按钮时将数组存储到 localStorage

lee*_*hin 1 jquery local-storage

我想在单击按钮时将每个 ID 保存到 lolalStorage 中。

 $("li").on("click", "a", function(){
     var test = {"id":  id, "name":name}; 
     localStorage.setItem("test", JSON.stringify(test));
 });
Run Code Online (Sandbox Code Playgroud)

但在页面重新加载时,我只能获取一个 id。

mar*_*bit 5

您每次点击都会覆盖相同的项目,因此您只存储最后一个项目。test是这个值的关键。

您有两个选择:

1.- 使用 将id信息存储在 localStorage 中或使用该信息生成一个新对象。

用作id本地存储密钥:

 $("li").on("click", "a", function(){
     localStorage.setItem(id, name);
 });
Run Code Online (Sandbox Code Playgroud)

这样你就不会知道 localStorage 中已有哪个 id,因此之后检索信息会很复杂。

2.- 另一种选择是保存包含所有键值对象的数组。您将只在 localStorage 中存储一个包含多个对象的对象:

 $("li").on("click", "a", function(){
     var test = localStorage.getItem("test");
     var obj = [];
     if(test){
         obj= JSON.parse(test);  
     }
     obj.push({"id":  id, "name":name});
     localStorage.setItem("test",JSON.stringify(obj));
 });
Run Code Online (Sandbox Code Playgroud)

那么检索信息就像这样做一样简单:

 var test = JSON.parse(localStorage.getItem("test"));  // Returns array with multiple objects
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/CgpeF/