2012-02-15 45 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