首先,我在Google上发现了很多主题,但没有一个能解决我的问题。我无法找到适合这些主题的解决方案。
使用jquery.cookie插件并尝试创建书签系统,我将每个项目ID存储在cookie中,如下所示:
$('.bookmarkAds').click(function () {
var id = $(this).attr('data-id');
if ($(this).hasClass('RedHeart')) {
$(this).removeClass('RedHeart');
$.removeCookie('Bookmark_' + id, id);
$(this).attr('title', 'Add');
} else {
$(this).addClass('RedHeart');
$.cookie('Bookmark_' + id, id, { expires: 3650 });
$(this).attr('title', 'Remove');
}
});
例如,这些是用户cookie:
Name: Bookmark_3017403 => Content: 3017403
Name: Bookmark_3217302 => Content: 3217302
Name: Bookmark_3217302 => Content: 2217312
现在我想在页面中显示已添加书签的项目,想要获取包含Bookmark_
的所有cookie,但我找不到合适的解决方案。我试过了:
if ($.cookie().indexOf('Bookmark_') > 1) {
}
要么
if (document.cookie.indexOf('Bookmark_') == -1) {
alert("1");
} else {
alert("2");
}
但没有成功。
目标:获取所有Bookmark_
索引的cookie。可能吗?或者我做错了什么?有解决方案吗?
要实现此目的,您需要遍历页面上设置的所有cookie并单独检查它们。另请注意,使用indexOf
检查时,-1
的值表示未找到。 0
是一个有效的响应,表示匹配位于字符串的开头。试试这个:
$.each($.cookie(), function(k, v) {
if (k.indexOf('Bookmark_') != -1) {
console.log(k, v);
}
})
请注意,我必须在此示例中使用jsFiddle,因为SO限制了代码段中的cookie访问。