2016-05-29 136 views
1

我一直在嘗試在JavaScript中的代碼,我想輸入給顯示在屏幕上。我想要將來自輸入的數據存儲在LocalStorage中。我試圖採取的價值,並使用localStorage.setItem和localStorage.getItem我也存儲在本地存儲。但是因爲我想要顯示每次點擊提交按鈕時插入的所有記錄,所以我還想存儲當前和以前的記錄。 我試圖推入一個數組,但它只有當前記錄,而不是以前存儲的值。我不想jquery。我只是想要簡單的JavaScript代碼。 謝謝。如何將本地存儲中的值存儲在數組中,JavaScript?

eg- 
    var data=[]; 
    function myFunction(data) 
    { 
     var name= document.getElementById("nm").value; 
     localStorage.name= name; 
     for(var i=0;i<localStorage.length;i++) 
     { 
      var key = localStorage.key(i); 
      var value = localStorage.getItem(key); 
      data.push(value); 
     } 
    } 
+0

請顯示您當前如何存儲數據。最簡單的方法是存儲數組的json表示,然後在將其從存儲中取出時解析。一個方便的小型庫腳本是'Store.js' – charlietfl

回答

1

是的,正如在評論中提到,最好只儲存您的陣列的字符串表示,並將其存儲在localStorage的一個值。網絡的localStorage可以存儲可以是整數或字符串(主要是字符串)official docs

你可以做這樣的事情簡單的鍵值對:

var name= document.getElementById("nm").value; 
var data; 
if (localStorage.getItem("name") === null) 
    //First value to be stored 
    data = []; 
else 
    //There is some value already in the array 
    data = JSON.parse(localStorage.getItem("name")); 

//Push name to data array in any case 
data.push(name); 
//Update localStorage 
localStorage.setItem("name",JSON.stringify(data)); 

我希望這可以讓你在正確的方向開始。

+0

'localStorage.setItem(「name」)= JSON.stringify(data)' - 這是'localStorage.setItem(key,value)'方法的錯誤用法 – RomanPerekhrest

+0

@RomanPerekhrest,謝謝大家指出它!注意到並更新:) –

+0

謝謝你的ans,但它給data.push nt一個函數錯誤。爲什麼?儘管數據是一個數組 – Sarah

相關問題