无论如何,在本地存储中是否使用星号或其他方法?

时间:2019-08-04 20:48:20

标签: javascript local-storage

这是一个简单而愚蠢的问题。我想使用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中删除,而其他条目保留在原处。

2 个答案:

答案 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);
    }
}