我試圖存儲基於此功能的多個項目:單擊按鈕時如何在本地存儲器上存儲多個項目?
onclick="s(iId)"
這是我使用的功能:
function s(i_id) {
var items = [];
items.push(i_id);
localStorage.setItem("i", JSON.stringify(i));
}
的問題是,它只能存儲一個ID時點擊按鈕,每次點擊刷新。我怎樣才能讓它存儲多個ID?
我試圖存儲基於此功能的多個項目:單擊按鈕時如何在本地存儲器上存儲多個項目?
onclick="s(iId)"
這是我使用的功能:
function s(i_id) {
var items = [];
items.push(i_id);
localStorage.setItem("i", JSON.stringify(i));
}
的問題是,它只能存儲一個ID時點擊按鈕,每次點擊刷新。我怎樣才能讓它存儲多個ID?
問題是,您正在創建一個新數組,並在其中推入一個ID,然後在每次調用函數時保存它。你可以做的兩件事是將items
數組移到該函數之外,並在保存之前直接將其推入。第二種方法是獲取已存儲的值,並在保存之前用JSON.parse
解析並推入新項目。
我建議去選擇1,即使它創建一個全局變量。它快得多。
var items = [];
function store(item_id) {
items.push(item_id);
localStorage.setItem("item", JSON.stringify(items));
}
你必須這樣調用的onclick:
onclick="store([itemId1, itemId2, itemId3])"
和功能:
function store(item_ids) {
var items = [];
for(var i = 0; i < item_ids.length; i++) {
items.push(item_ids[i]);
}
localStorage.setItem("item", JSON.stringify(items));
}
,如果你想新的陣列添加到存儲的每次點擊考慮...
它仍然不存儲新的值。它只存儲一個。 – ClauCece
不可以?它爲我工作:https://jsfiddle.net/htre12g4/ – GMchris
是的!謝謝,它正在工作..我的壞。 – ClauCece