我使用 jquery cookie 插件,这是我的代码:
$('.Bookmark').click(function () {
var id = $(this).attr('rel');
if ($(this).hasClass('RedHeart')) {
$(this).removeClass('RedHeart');
$.removeCookie('Bookmarkid_' + id, id);
$(this).attr('title', 'Add');
} else {
$(this).addClass('RedHeart');
$.cookie('Bookmarkid_' + id, id, { expires: 3650 });
$(this).attr('title', 'remove');
}
});
$('.Bookmark').each(function () {
var id = $(this).attr('rel');
var $this = $(this);
if ($.cookie('Bookmarkid_' + id) == id) {
$this.addClass('RedHeart');
$this.attr('title', 'remove');
}
});
我想知道如何找到所有使用相似名称设置的Cookie。例如,我用这些名称设置了3个cookie:
Bookmarkid_3132509
Bookmarkid_3432502
Bookmarkid_4433342
现在我想查找并返回以Bookmarkid_
名称开头的所有Cookie。我需要这样的东西:
if ($.cookie().indexOf("Bookmarkid_") === 0) {
alert('yes')
}
编辑:它不重复,与该主题无关,仍未解决我的问题!!!
答案 0 :(得分:2)
阅读所有可用的Cookie:
$.cookie(); // => { "name": "value" }
所以
Object.keys($.cookie()).forEach(function(cookieName) {
if (cookieName.indexOf("Bookmarkid_") === 0) {
alert('yes')
}
});
// next one return you only filtered cookies
Object.keys($.cookie()).reduce(function(collector, cookieName) {
if (cookieName.indexOf("Bookmarkid_") === 0) {
collector[cookieName] = $.cookie(cookieName);
}
return collector;
}, {});
// to filter cookies Names
Object.keys($.cookie()).filter(function(cookieName) {
return cookieName.indexOf('Bookmarkid_') === 0;
});