2016-04-24 37 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

你還可以嘗試:

相關問題