如果 jQuery 的 cookie 索引

If jQuery cookie index of

首先,我在 Google 上找到了很多主题,但其中 none 解决了我的问题。我找不到这些主题的正确解决方案。

使用 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);
  }
})

Working example

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