2010-05-15 26 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