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

うわー!手伝ってくれてどうもありがとう。それが問題でした。 –

関連する問題