2012-02-15 42 views
0

我有一個應用程序,我在客戶端使用JavaScript來構建一個集合。在page1.html我有以下內容:JQuery - 存儲和檢索數組

var collection = []; 
$.each(item, function (i, r) { 
    collection.push(r); 
}); 
alert(collection.length); 

window.localStorage.setItem("collection", collection); 

當此代碼執行時,我在消息框中看到「4」。這正是我所期待的。當我瀏覽到page2.html,我有以下幾點:

$(document).ready(function() { 
    var collection = window.localStorage.getItem("collection"); 
    alert(collection.length); 
}); 

當此代碼執行時,我看到「63」的消息框。我期待「4」。我不知道是什麼會造成這種情況。我的直覺是它與我試圖存儲一個集合的事實有關,並且我沒有像我應該那樣得到/設置。這種方法適用於我的應用程序中與純字符串相關的值。我不知道爲什麼它不在這裏工作。任何人都可以指引我正確的方向嗎?

謝謝!

回答

0

localStorage只能用於將對象存儲爲字符串,因此您需要將列表作爲字符串序列化(可能使用逗號或空字符)。

一個想法是在collection上使用jQuery的JSON.stringify方法並存儲它。

請隨時查看this post瞭解更多信息。

+0

哇!非常感謝你的幫助。這是問題所在。 – 2012-02-15 18:19:11