2017-01-03 35 views
0

我有這個代碼的問題。這是一個產品頁面,如果我點擊保存按鈕,它會將產品ID保存到jQuery Cookie中。在Cookie中,我存儲瞭如下示例的ID-s:1,2,3,4 ....檢查一個jQuery Cookie中存在的ID

如果一個ID已經存在於cookie中,我不會得到那個錯誤,它總是保存它,該ID將被複制到cookie中。

$('#favorite_button').click(function() 
    { 
     var cookie_message, item_id, most_van; 
     item_id = <?php echo $kat_id ?>; 
     var cookie_val = $.cookie("kedvenc_termek_cookie"); 
     if(cookie_val){ 
      most_van = cookie_val.split(","); 
     } 
     else{ 
      most_van = []; 
     } 
     if($.inArray(item_id, most_van) === -1){ 
      most_van.push(item_id); 
      $.removeCookie('kedvenc_termek_cookie'); 
      $.cookie('kedvenc_termek_cookie', most_van.join(","), { expires: 7, path: "/" }); 
      cookie_message = "ID saved okey."; 
     } 
     else { 
      cookie_message = "This ID already in the cookie."; 
     } 
     $('#FavoritItemModalResult').html(cookie_message);$('#FavoritItemModal').modal('show'); 
     setTimeout(function() 
     { 
      $('#FavoritItemModal').modal('hide'); 
     }, 3000); 
    }); 

回答

0

$ .inArray與Array.prototype.indexOf類似,嚴格比較(===)。

當你做most_van = cookie_val.split(「,」);,你會得到一個字符串數組。 確保你有相同的類型。

如果item_id是一個int,然後你做前人的精力:

most_van = cookie_val.split(","); 
most_van = most_van.map(function(id) { 
    return parseInt(id, 10) 
}) 
+0

這是什麼呢? (id,10) 我可以在這裏寫什麼? –

+0

此轉換字符串數組,爲一個整數數組: most_van = most_van.map(函數(ID){ 返回parseInt函數(ID,10) }) 'map'創建新的數組,與項目,該函數傳遞返回,該函數將每個項目作爲參數逐個接收。 'parseInt(id,10)'將字符串轉換爲整數,'10'至10 – bogdanpetru

+0

對不起,我不明白這一點。什麼是我必須寫的完整代碼? –