2016-03-29 16 views
0

クリックイベントのCookieから特定の値を削除しようとしています。私のコードはsofar:

  $("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); 
     }); 

このコードは動作しません。同じ名前と値を持つ別のクッキーを作成します。

答えて

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

​​戻り-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()); 
}); 
+0

https://jsfiddle.net/arunpjohny/sLhu7vv9/ –

0

使用すると、あなたは1つのIDが削除されたときの値の新しいIDアレイでクッキーを更新するクッキー

$.removeCookie('hotel-comparison'); 
+0

$ .removeCookieはCookieを削除します。私が必要とするのは、クッキー内のいくつかの値だけを削除することです。 – Roman

+1

あなたはクッキーを削除し、変更された値 – madalinivascu

+0

OKで新しいクッキーを作成するので、クッキーを最初に削除してから新しい値で新しいクッキーを作成する必要があります。私は、クッキーを削除する必要がない別の方法があるかどうか疑問に思っていました。 – Roman

0

を削除しますか?

最後にやっているように、新しい値でクッキーを書き直すだけです。

多分、配列からidを削除するのはもっと問題になりますか?デバッグして、クッキーが再び書き込まれる前にIDが削除されたことを確認しましたか?また https://stackoverflow.com/a/3596096/2028628

この行:あなたが行にhotelIdsArrayにこの値を設定するよう

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

が(に変更することができます配列内の項目の除去について

は、多分これを見て上記)

関連する問題