2016-04-18 43 views
0

我有jQuery的數組是這樣的:如何保存瀏覽器cookie中的jquery數組?

[1: "0", 2: "0,1,2,3"] 

我希望把它保存在瀏覽器cookie。但據我所知,只有字符串可以保存在瀏覽器cookie中。所以我必須將此jquery數組轉換爲字符串,然後保存在cookie中。有沒有辦法做到這一點?

+3

['JSON.stringify'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify),['JSON.parse'](https:// developer .mozilla.org/EN-US /文檔/網絡/的JavaScript /參考/ Global_Objects/JSON /分析)?我想有一個很好的副本,「如何序列化數據結構到字符串在JavaScript中」某處在這裏... – apsillers

+0

可能重複[Cookie數組在javascript](http://stackoverflow.com/questions/8163815/cookie-array -in-javascript) –

+0

[我想將Javascript數組存儲爲Cookie]的可能重複(http://stackoverflow.com/questions/2980143/i-want-to-store-javascript-array-as-a-cookie ) – snovelli

回答

0

Cookie只能存儲字符串。因此,您需要將您的數組轉換爲JSON字符串。如果您有JSON庫,則可以簡單地使用JSON.stringify(data)並將其存儲在cookie中,然後使用$ .parseJSON(data)將其解壓縮。

最後,你的代碼看起來像:

var data = [ 
    { 'name' : 'Abel', 'age' : 1 }, 
    { 'name' : 'Bella', 'age' : 2 }, 
    { 'name' : 'Chad', 'age' : 3 }, 
]; 

$.cookie("data", JSON.stringify(data)); 
// later on if you need to add any element... 
var data = $.parseJSON($.cookie("data")); 
data.push(
    { 'name' : 'Daniel', 'age' : 4 } 
); 
$.cookie("data", JSON.stringify(data)); 
0

[1: 「0」,2: 「0,1,2,3」]這不是一個數組,這是錯誤的文字; {1: 「0」,2: 「0,1,2,3」}如果你這樣寫,它是一個對象,所以你可以這樣做:

var target = {1: "0", 2: "0,1,2,3"}; 
 
for(let name in target){ 
 
    document.cookie = name + "=" + target[name]; 
 
}

相關問題