【问题标题】:How to remove particular value from a $.cookie如何从 $.cookie 中删除特定值
【发布时间】:2016-07-16 16:15:37
【问题描述】:

我正在尝试从点击事件的 cookie 中删除特定值。到目前为止我的代码:

            $("a.js-delete-hotel").on("click", function (e) {
            e.preventDefault();                

            deleteHotelId =  $(this).attr("id");

                hotelIdsArray = $.cookie('hotel-comparison').split(/,/);

                if($.inArray(deleteHotelId, $.cookie('hotel-comparison').split(/,/))){
                    for(var i = hotelIdsArray.length-1; i--;){
                            if (hotelIdsArray[i] === deleteHotelId) hotelIdsArray.splice(i, 1);
                    }
                }

                $.cookie('hotel-comparison', hotelIdsArray);
        }); 

此代码不起作用。它创建另一个具有相同名称和值的 cookie。

【问题讨论】:

    标签: jquery arrays cookies


    【解决方案1】:

    inArray() 返回 -1,如果在数组中没有找到该项

    $("a.js-delete-hotel").on("click", function(e) {
      e.preventDefault();
    
      var deleteHotelId = $(this).attr("id");
    
      var hotelIdsArray = $.cookie('hotel-comparison').split(/,/),
        idx = $.inArray(deleteHotelId, hotelIdsArray);
    
      if (idx > -1) {
        hotelIdsArray.splice(idx, 1);
      }
    
      $.cookie('hotel-comparison', hotelIdsArray.join());
    });
    

    【讨论】:

      【解决方案2】:

      您想在删除一个 id 时使用新的 ID 数组值更新 cookie?

      您应该使用新值再次写入 cookie,就像您在最后所做的那样。

      也许从数组中删除 id 是一个更大的问题?是否在再次写入 cookie 之前调试并验证了 id 已被移除?

      关于删除数组中的项目,也许看看这个: https://stackoverflow.com/a/3596096/2028628

      还有这一行:

      if($.inArray(deleteHotelId, $.cookie('hotel-comparison').split(/,/))){
      

      可以更改为(当您在上面的行中将此值设置为hotelIdsArray)

      if($.inArray(deleteHotelId, hotelIdsArray)){
      

      【讨论】:

        【解决方案3】:

        使用删除cookie

        $.removeCookie('hotel-comparison');
        

        【讨论】:

        • $.removeCookie 将删除 cookie。我需要的是只删除 cookie 中的一些值。
        • 您删除 cookie 并使用更改后的值创建一个新的
        • 好的,所以需要先删除 cookie,然后使用新值创建新的 cookie。我只是想知道是否有另一种方法可以做到这一点而无需删除 cookie。
        猜你喜欢
        • 2011-12-09
        • 1970-01-01
        • 1970-01-01
        • 2013-07-20
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多