我正在像下面这样动态创建本地存储
window.localStorage["DBname"+count]=JSON.stringify(values)
同时我也在创建一些其他的本地存储
window.localStorage["login_detail"]=login_string
window.localStorage["page_config"]=page_config
所以我不能使用 window.localStorage.clear()
,因为它会清除我不需要的所有本地存储,而且我也不能使用 window.localStorage.removeItem[ "DBname"+count]
因为我知道执行时会有多少个"count"。
那么有什么方法可以像组删除一样删除本地存储吗?帮帮我。
最佳答案
简单的解决方案
var prefix = "DBname",
continue = true,
on = 0;
while (continue) {
continue = localStorage.getItem(prefix + on)?true:false;
try { localStorage.removeItem(prefix + on); } catch (e) { continue = false; }
on += 1;
}
这将删除所有以 DBname
开头的本地存储项目
测试
开始:
- 数据库名称1
- DBblah
- DBnameCats
- 数据库名称 2
- 数据库名称 3
结束:
- DBblah
- DBnameCats
更好的解决方案
var keys = Object.keys(localStorage),
prefix = "DBname";
for (var i = 0; i < keys.length; i += 1) {
if (keys[i].indexOf(prefix) === 0) {
localStorage.removeItem(keys[i]);
}
}
测试
开始:
- 数据库名称1
- DBblah
- foobar
- DBnameCats
- 数据库名称 2
- 数据库名称 3
结束:
- DBblah
- foobar
处理支持
添加这一行:
Object.keys||(Object.keys=function(r){var e=[];for(var n in r)r.hasOwnProperty(n)&&e.push(n);return e});
这将使您可以在几乎所有浏览器上使用更好的解决方案。
关于javascript - 如何批量删除HTML5本地存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29887738/