2011-04-05 28 views
1

我創建了以下腳本,它循環遍歷我的cookie。當我找到一個匹配時,我想只從cookie中刪除匹配的值。我如何實現這一目標?使用Jquery和cookie.split從一個cookie中刪除一個值

var cookieName = 'myCookie'; 
var cookie = $.cookie("preferences"); 
var cookie = cookie.split('|'); 

$(cookie).each(function(index){ 
     var thisCookieData = this.split(','); 
     if(thisCookieData[0] == thisWidget.id){ 
      alert("Match!"); 
     } 
     alert(thisCookieData); 
}); 
+0

我不知道你是否希望cookie'(由第一'split')的'整個部分刪除,如果比賽是中,或只是一個部分由第二個「split」產生的塊。無論如何,不​​建議使用「魔術串」格式。我會使用諸如JSON的序列化方案來存儲我的結構。有JS cookie文件夾,內置JSON和jQuery支持。 – JAAulde 2011-04-05 11:11:52

+0

有道理,謝謝 – Prometheus 2011-04-05 12:43:39

回答

2

可以使用此代碼:

 
    cookie = $.grep(cookie, function(item, index) { 
     var parts = item.split(','); 
     return parts[0] !== id; 
    }).join('|'); 

grep的是一個jquery函數查找其中滿足給定功能的數組元素。

0

分割,刪除並再次加入:

.split(',') 
... 
.join(',')