jQuery具有相应id号的目标元素

时间:2012-08-11 15:16:58

标签: jquery

这是我的代码

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

我已经为每个盒子准备了单独的饼干。现在我想用jquery检查cookie,如果cookie值为'close',则删除相应的框。

如何让该代码与其他框一起使用? 。其他盒子有类似的ID(box2,box3),每个盒子都有一个cookie

2 个答案:

答案 0 :(得分: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();
}
​

答案 1 :(得分: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();
});