2016-05-30 44 views
2

所有的cookie使用我jquery cookie插件,這裏是我的代碼:找到名字是

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

我不知道我怎樣才能找到一個相似名稱的所有cookies。比如我設置設置3塊餅乾這些名字:

Bookmarkid_3132509 
Bookmarkid_3432502 
Bookmarkid_4433342 

現在我想找到並返回與Bookmarkid_名字開始所有的cookies。我需要的是這樣的:

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: $.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檢查更新了答案 –

+0

感謝您的幫助和解答 – Pedram