2010-02-10 21 views
13

$(document).ready adresinden çerez eklemek veya güncellemek için "Cookie Plugin" by Klaus Hartl kullanıyorum. Tüm çerezleri yineleyecek ve her çerezin değeri ile bir şeyler yapması gereken başka bir olayım var. Çerezler koleksiyonu üzerinde nasıl yineleyebilir ve her birinin kimliğini ve değerini alabilir miyim? BöyleJQuery (veya sadece javascript) kullanarak tanımlama bilgileri üzerinde nasıl yineleyebilirim?

Düşünüyorum şey:

$.cookie.each(function(id, value) { 
      alert('ID='+id+' VAL='+value); 
     }); 

cevap

18

eklentisi:

$.each(document.cookie.split(/; */), function() { 
    var splitCookie = this.split('='); 
    // name is splitCookie[0], value is splitCookie[1] 
}); 
+0

Mükemmel çözüm. Regex ile bölmek çok daha iyidir. –

+1

İlk satırdaki işlev tanımı hariç tüm doğru. İşlev (cookieString) işlevini (indeks, cookieString) değiştirin ve aldınız! –

+1

oh sağ - özür dilerim! Ayrıca jQuery'nin her bir öğeye "bunu" bağladığını düşünüyorum, bu yüzden onu da bırakabilir ve yalnızca "bu" işlevinin içinde bölebilirsiniz. – Pointy

3

iyi sade javascript oldukça kolay: Eğer sadece fazladan olmadan da zor değil çerez bakmak istiyorsanız

var keyValuePairs = document.cookie.split(';'); 
for(var i = 0; i < keyValuePairs.length; i++) { 
    var name = keyValuePairs[i].substring(0, keyValuePairs[i].indexOf('=')); 
    var value = keyValuePairs[i].substring(keyValuePairs[i].indexOf('=')+1); 
} 
+1

lider boşluklar dikkat! Regex/ile bölmelisiniz; *// string yerine ';'. – Pointy

+0

oldukça doğru, bunu işaret ettiğin için teşekkürler, pointy –

+0

Bu çözümü beğeniyorum çünkü çerez değerlerinde eşittir işaretlere izin veriyor. – spb

0

Diğer çözüm, adından önce beyaz boşluklar yaratır, bu da hata ayıklamalarına neden olur hatalar.

var keyValuePairs = document.cookie.split(/; */); 
for(var i = 0; i < keyValuePairs.length; i++) { 
    var name = keyValuePairs[i].substring(0, keyValuePairs[i].indexOf('=')); 
    var value = keyValuePairs[i].substring(keyValuePairs[i].indexOf('=')+1); 
    ... 
İlgili konular