这是一个简单而愚蠢的问题。我想使用localStorage.removeItem('itemhere')函数。我的情况是,我只想删除所有具有特定结尾的本地存储项,例如“ _email”。无论如何,有针对性吗?也许像通用选择器*(星号)一样? https://api.jquery.com/all-selector/
我玩过*(星号)方法,没有结果
这些对我没有用,所以我不确定是否有可能。
localStorage.removeItem('* _email');
localStorage.removeItem(*'_email');
localStorage.removeItem(*' _email');
also a variable such as
var email = $("*").localStorage("_email");
假定该代码适合以下更改功能。
$('.sar').on('change', function () {
$(this).closest('form').find('input[type=radio].rgroup').prop('checked', true);
localStorage.setItem('all1', JSON.stringify(true));
localStorage.removeItem('all2');
localStorage.removeItem('all3');
localStorage.removeItem('uncheck');
localStorage.removeItem("* _email");
});
我希望所有以“ _email”结尾的本地存储条目都将从localstorage中删除,而其他条目保留在原处。
答案 0 :(得分:1)
您可以通过遍历本地存储中的所有元素来手动执行此操作。
这将所有密钥作为来自localStorage对象的数组提供:
Object.keys(localStorage)
使用过滤器,根据您的条件过滤它们:
.filter(key => key.endsWith('_email'))
,然后将它们从localStorage中一个接一个地删除:
.forEach(key => localStorage.removeItem(key))
结果:
Object.keys(localStorage)
.filter(key => key.endsWith('_email'))
.forEach(
key => localStorage.removeItem(key)
)
答案 1 :(得分:0)
尝试一下:
for(let i = 0; i < localStorage.length; i++) {
let key = localStorage.key(i);
if(key.endsWith("_email")) {
localStorage.removeItem(key);
}
}