0

jQuery を使用してalbum_likeの配列を格納するCookie を作成しましidた。いくつかの条件が満たされたときに、この配列に新しい値を追加/プッシュしたいと思います。以下は私のコードです

if (typeof $.cookie('album_like') == 'undefined') {
    $.cookie('album_like', [data.album_id], { expires: 365, path: '/' });
} else {
    var arr = [$.cookie('album_like')];
    if (!($.inArray(data.album_id, arr) > 0)) {
        arr.push(data.album_id);
        $.cookie('album_like', arr);
    }
}

["1, 2, 3, 4, 5"]firebug を使用して値を確認すると、配列が になることがわかったので、コード!($.inArray(data.album_id, arr) > 0)が機能しません。配列は[1, 2, 3, 4, 5].

誰でも私のコードについてアドバイスをいただけますか?

ありがとう

4

1 に答える 1

3

これは、配列ではなく配列エントリとして文字列を取得しています。

 var arr = [$.cookie('album_like')];

これを試して:

var arr = $.cookie('album_like').split(', '); // split string to array
$.each(arr, function(i,v){
    arr[i] = parseInt(v); // convert string array entries to ints
});

または、json エンコーディングを使用して配列jquery を保存および取得し、json データ オブジェクトを Cookie に保存することもできます。

 $.cookie.json = true;
于 2013-04-12T17:45:21.950 に答える