0

これが私のコードです

if(jQuery.cookie("box1") == "close") {
        jQuery("#box1").remove();
};

ボックスごとに個別の Cookie が既にあります。ここで、jquery で Cookie を確認し、Cookie の値が「close」の場合は対応するボックスを削除します。

そのコードを他のボックスで動作させるにはどうすればよいですか? .他のボックスには同様の ID (box2、box3) があり、それぞれに Cookie があります。

4

2 に答える 2

1

CookieプラグインにCookieを反復処理するオプションがあるとは思いませんが、設定されたすべてのCookieを自分で取得し、それらを反復処理して値がcloseであるかどうかを確認し、対応する要素を削除します。

function get_cookies() {
    var cookies = { };
    if (document.cookie && document.cookie != '') {
        var split = document.cookie.split(';');
        for (var i = 0; i < split.length; i++) {
            var name_value = split[i].split("=");
            name_value[0] = name_value[0].replace(/^ /, '');
            cookies[decodeURIComponent(name_value[0])] = decodeURIComponent(name_value[1]);
        }
    }
    return cookies;
}

var cookies = get_cookies();
for(var name in cookies) {
    if (cookies[name] == 'close') jQuery("#"+name).remove();
}
​
于 2012-08-11T15:49:10.223 に答える
0

このjquery.cookieプラグインを見てください: jQuery.cookie

次のようなコードを使用して、必要な結果を得ることができます。

if ($.cookie('box1') === 'close') {
    $('#box').remove();
}

別の方法として、このプラグインを引き続き使用しながら、JSON オブジェクトをボックスの Cookie に格納して非表示にすることもできます。これにより、もう少し一般的なものにして、次のように実装できます。

// assuming the cookie: boxes-to-hide is an array of string id ['box1', 'box2']
$($.cookie('boxes-to-hide')).each(function() {
    // this will be the id of the box to hide
    $('#' + this).remove();
});
于 2012-08-11T15:23:31.880 に答える