2016-04-24 39 views
-1

我想为我的网站添加收藏夹功能。我使用的技术是html,css,javascript和json。我通过ajax加载json文件。用户可以搜索设备并将该设备添加到他们的收藏夹,并通过sessionStorage和localStorage完成,但我的问题是,当用户点击新手机添加到他们的收藏夹时,它会覆盖它。我是否必须像IF语句那样说,如果有一个id,那么还会添加这个。我是如何做到这一点迷茫......使用JavaScript在localStorage中存储多个ID

代码示例....

$(document).on('click', '.productfavourite', function(event) { 

    // whichever HTML element has been clicked, 
    // grab the id of that and set it as product fave 
    productFave = event.target.id; 

    localStorage.setItem('productFave', productFave); 
    console.log(productFave); 
    window.location="favourites.html"; 
}); 
+0

'localStorage.setItem(“productFave”,productFave);'您可以设置项的值' productFave',显然会覆盖那里的内容。你会期待什么?该setItem实际上会得到该项目,解析它,添加一个额外的价值,并将其存储回来?这是你需要建立自己的东西。也许有一个getItem?... – GolezTrol

回答

0

我建议你保存所选项目中的对象或数组,你到localStorage的写它。之后,您将对象或数组转换为json字符串。

var selected = []; 
$(document).on('click', '.productfavourite', function(event) { 
    selected.push(event.target.id); 
    console.log(selected); 
}); 

这将返回一个数组,您可以转换为json。 希望这有助于。

0

所以你需要的是保持包含收藏夹的集合(列表或字典)。我会给你一些例子,然后你可以找出其余的。

你在你的localStorage获取当前productFav如下:

var fav = localStorage.getItem("productFav") || []; 

现在你不想保存在localStorage的一个值,你希望你的整个列表那里。所以你添加新的最爱列表和序列化的结果作为一个JSON字符串

fav.push(newItem); 

localstorage.setitem("productfav", JSON.stringify(fav)); 

我认为fav是一个列表。这是最好的使用字典,如果你想避免增加重复的条目

0

你还可以尝试:

相关问题