2016-05-30 23 views
2

を持つすべてのクッキーを探す:私は<strong><a href="https://github.com/carhartl/jquery-cookie" rel="nofollow">jquery cookie</a></strong>プラグインを使用して、ここに私のコードです名前

$('.Bookmark').click(function() { 
    var id = $(this).attr('rel'); 
    if ($(this).hasClass('RedHeart')) { 
     $(this).removeClass('RedHeart'); 
     $.removeCookie('Bookmarkid_' + id, id); 
     $(this).attr('title', 'Add'); 
    } else { 
     $(this).addClass('RedHeart'); 
     $.cookie('Bookmarkid_' + id, id, { expires: 3650 }); 
     $(this).attr('title', 'remove'); 
    } 
}); 

$('.Bookmark').each(function() { 
    var id = $(this).attr('rel'); 
    var $this = $(this); 
    if ($.cookie('Bookmarkid_' + id) == id) { 
     $this.addClass('RedHeart'); 
     $this.attr('title', 'remove'); 
    } 
}); 

私はどのように似た名前で設定されたすべてのクッキーを見つけることができます思ったんだけど。例えば私はこれらの名前で3枚のクッキーを設定する設定します。

Bookmarkid_3132509 
Bookmarkid_3432502 
Bookmarkid_4433342 

は、今、私が見つけ、Bookmarkid_名前で始まるすべてのクッキーを返すようにしたいです。

if ($.cookie().indexOf("Bookmarkid_") === 0) { 
    alert('yes') 
} 

編集:私はこのような何か必要それはそのトピックに関連する複製しないではないですが、それでも私の問題を解決しないと!

+0

@Satpalは、私の問題を解決していません!私はそれが私の質問に全く関係していないと思うが、あなたはそれを重複しているとマークした!私の問題はまだ解決されていません。 – Pedram

+1

私はそれを再オープンしました。 'if(Object.keys($。cookie())。some(function(k){return〜k.indexOf(" Bookmarkid_ ")})){ //それはBookmarkID_property } ' – Satpal

答えて

2

読む、使用可能なすべてのクッキー:私は前にそれを試してみました $.cookie(); // => { "name": "value" }

ので

Object.keys($.cookie()).forEach(function(cookieName) { 
    if (cookieName.indexOf("Bookmarkid_") === 0) { 
    alert('yes') 
    } 
}); 

// next one return you only filtered cookies 
Object.keys($.cookie()).reduce(function(collector, cookieName) { 
    if (cookieName.indexOf("Bookmarkid_") === 0) { 
    collector[cookieName] = $.cookie(cookieName); 
    } 
    return collector; 
}, {}); 

// to filter cookies Names 
Object.keys($.cookie()).filter(function(cookieName) { 
    return cookieName.indexOf('Bookmarkid_') === 0; 
}); 
+0

ありがとうございます。余分な質問がありますが、これらのクッキーをフルネームでどのように返すことができますか?例えば、配列内に 'Bookmarkid_3132509''「Bookmarkid_3432502」' Bookmarkid_4433342'を返すことを意味します。 – Pedram

+1

@pedram check updated答え –

+0

あなたの助けと答えをありがとう – Pedram