第一:看來你是混合的JavaScript一類的函數(這裏有一個例子:What techniques can be used to define a class in JavaScript, and what are their trade-offs?)
例如,這就是等價類中的JavaScript:
function ClassName() {
var privateVar;
this.publicVar;
function privateFunction() {}
this.publicFunction = function() {};
}
你不應該在函數中包含一個函數,除非它具有含義(否則它會讓其他人感到困惑),但是在給定的例子中你並不需要它。另外,我看不到創建新對象的原因。x
- 如果您在保存之前創建對象,則可以保存該值,因爲對象只包含sample
的值,因此您可以編寫類似這樣的:
document.getElementById("submit").addEventListener("click", getElements);
function storeElements() {
var sampleValue = document.getElementById("sample").value;
localStorage.setItem('todays-values', sampleValue);
}
回到你的問題:
由於Kalamarico提到:如果你寫新值到todays-values
將覆蓋舊的值,你可以簡單地加載從localStorage的所有舊值追加新的,並將它們寫回localStorage。
您還應該注意localStorage只接受字符串,所以您應該將對象串聯起來(請參閱localStorage.setItem)。
function appendValueToStorage(key, value) {
var values = JSON.parse(localStorage.getItem(key));
if (values === null) {
values = [];
}
values.push(value);
localStorage.setItem(key, JSON.stringify(values));
console.log(localStorage.getItem(key));
}
appendValueToStorage('todays-values', document.getElementById("sample").value);
該功能可以讓你附加一些值,一鍵,你甚至可以重新包裝這個功能,可以使用它在你的點擊功能:
function onSubmitClick() {
appendValueToStorage('todays-values', document.getElementById("sample").value);
}
document.getElementById("submit").addEventListener("click", onSubmitClick);
隨着console.log
命令,您可以查看localStorage的當前內容(您也可以使用開發人員工具進行檢查 - 我發現Chrome的工作效果最好,在應用程序 - >本地存儲選項卡下,您可以檢查您的頁面的localStorage)。
而不是覆蓋您的本地存儲項目,您應該將用戶值存儲在一個數組中。每次單擊提交按鈕時,您的腳本都應該獲取本地存儲項(它是一個數組),並將其附加到本地存儲項並重寫它。 – Terry
我已經考慮過了。儘管如此,如果你能發佈一個真正有用的例子,它還是無法實現。 – Alonishka
我添加了一個示例如何讀取和寫回到localStorage:[見我的答案](http://stackoverflow.com/a/39812320/931485) –