2010-05-15 50 views
2

我做了我自己使用此功能:當有人點擊這個上市的localStorage

function save(title, url) 
{ 
for (var i = 1; i < localStorage.length; i++) 
{ 
    localStorage["saved-title_" + i + ""] = title; 
    localStorage["saved-url_" + i + ""] = url; 
} 
} 

function listFavs() 
{ 
for (var i = 1; i < localStorage.length; i++) { 
    console.log(localStorage["saved-fav-title_" + i + ""]); 
} 
} 

保存()發生localStorages,我應該如何使它工作?

+1

難道我的回答幫助以任何方式的一個關鍵的項目?如果是這樣,請記住將其標記爲解決方案。 – 2010-05-15 22:26:20

回答

4

可能是因爲您正在使用密鑰'saved-title_' + i來保存該值,而'saved-fav-title_' + i來檢索它?

區別在於fav-部分。

和你的localStorage的枚舉綁定爲難保,在它的所有項具有相匹配的模式提供'saved-fav-title_' + i一鍵創建錯誤 - 實際上它是保證不會使你自己輸入的項目鍵的形式爲'saved-url_'+ i

所以,如果你想正確枚舉與模式匹配的使用

function listFavs(){ 
    var key; 
    for (var i = 0, len = localStorage.length; i < len; i++){ 
     key = localStorage.key(i); 
     if ((/^saved-fav-title_/).test(key)) { 
      console.log(localStorage.getItem(key); 
     } 
    } 
} 
+0

console.log(localStorage [key]);在Dreamweaver中出現錯誤,不,它不起作用。 – BonjourHolaOla 2010-05-15 23:11:20

+0

在那裏,代碼現在更新爲根據規範http://dev.w3.org/html5/webstorage/#the-localstorage-attribute工作。第一個只能在Chrome中使用。 – 2010-05-16 12:22:54