从 Cookie 中删除多个值

Deleting multiple values from cookie

本文关键字:删除 Cookie      更新时间:2023-09-26

我有一个项目列表,它有两个值,一个名称和一个id。每个列表项都是使用从 Cookie 中提取的数据构建的。它还有一个删除按钮,基本上查看 HTML,然后从 cookie 中删除该项目。它不漂亮,但它工作花花公子。

现在突然之间

,引入了第三个值(img src)。因此,我创建了一个新功能来创建cookie并构建列表。生活还是很美好的。

但是,当我尝试从数组中删除该项目时,会出现我的问题。

.JS

$('.deleteNewCookie').on('click', function () {
  var val = $(this).prev().prev().html(); // Search DOM for value
  var cookieStr = cookieData.split('|');
  createCookie('cokLocation', "", -1);
  var newCookie = '';
  $.each(cookieStr, function (index, value) {
     if (value != '') {
        var cookieAdd = value.split(',');
        if (cookieAdd[1] != val) {
           newCookie = newCookie + value + '|';
        }
     }
  });
  createCookie('cokLocation', newCookie, '300');
});


这是 cookie 中一个项目的样子:

ID,Name,/image.png|


现在,当标记更简单并且只有 ID 和名称时,这可以按预期工作,但是当我现在单击.deleteNewCookie时,图像 sorce 保留在 cookie 中。我将如何删除该数组(项目)中的所有内容?为什么它显然只删除了前两个值?

标记

<li>
  <div class="myLocImg">
    <img src="/image.png">
  </div>
  <div class="myLocInfo">
    <h3>NAME</h3>
    <span url="locationid=ID" class="btn">More details</span>
    <a class="deleteNewCookie">Remove</a>
  </div>
</li>


我有点不愿意重组我的cookie(因为它在其他地方使用),但我可能会被说服作为最后的手段。我也没有使用任何插件,我对导入任何插件并不感兴趣。请仅使用纯JS或jQuery解决方案。:)

小提琴试图重现问题。代码按预期工作。代码的其他部分导致问题。

问题原来与" createCookie() 以及值如何存储在 HTML 本身中有关。