如果jQuery cookie索引

问题描述 投票:2回答:1

首先,我在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。可能吗?或者我做错了什么?有解决方案吗?

javascript jquery cookies jquery-cookie
1个回答
1
投票

要实现此目的,您需要遍历页面上设置的所有cookie并单独检查它们。另请注意,使用indexOf检查时,-1的值表示未找到。 0是一个有效的响应,表示匹配位于字符串的开头。试试这个:

$.each($.cookie(), function(k, v) {
  if (k.indexOf('Bookmark_') != -1) {
    console.log(k, v);
  }
})

Working example

请注意,我必须在此示例中使用jsFiddle,因为SO限制了代码段中的cookie访问。

© www.soinside.com 2019 - 2024. All rights reserved.