2013-01-09 24 views
0

我正在嘗試調用一堆我已經存儲回頁面的cookie。有多個名字像todo-0,todo-1(你明白了)。所以,我試圖找出一種叫做'todo-'開頭的所有cookie的方法,然後將該cookie的值打印到表格中的我的頁面上。基於名稱的起始位置獲取多個Cookie

我有點希望它會是簡單的:

if (document.cookie.name.match(/^todo-/)) { 
    todoTable.insertAdjacentHTML('beforeend', document.cooke.value); 
} 

,但我得到一個錯誤說no method 'match'

任何關於通過多個cookie進行根的最佳方式以及以todo-開頭的方式獲取的想法?

+0

有像'document.cookie.name',沒有這樣的事'document.cookie'包含字符串與分配給記錄所有的cookies。 – lupatus

回答

1

你將不得不做這樣的事情:

var myCookies = document.cookie.split(";"); 

for(var i = 0; i < myCookies.length; i++) 
{ 
    var cookie = myCookies[i].trim().split("="); 

    if(cookie[0].indexOf("todo-") === 0) { 
     todoTable.insertAdjacentHTML('beforeend', decodeURIComponent(cookie[1])); 
    } 
} 
+0

你應該首先解碼值,因爲它是URL編碼'decodeURIComponent(cookie [1])'(與cookie名稱相同的東西,但在todo-'沒有任何解碼,因此在這種情況下可以省略步驟) – lupatus

+0

@ lupatus謝謝,更新... – ATOzTOA

+0

和'String.trim'僅被現代瀏覽器支持 - 只是一個通知;) – lupatus