首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从LocalStorage中删除特定项目

如何从LocalStorage中删除特定项目
EN

Stack Overflow用户
提问于 2018-07-31 15:30:57
回答 4查看 660关注 0票数 0

我的本地商店中有很多价值,我想删除其中的一些。当我点击我创建的动态卡时,它应该被正常和本地删除。我通常可以删除它,但我不能从本地删除它。

本地存储事件非常混乱,没有太多的解释性资源。至少我找不到它。已经感谢你的帮助了。

This is codepen

代码语言:javascript
复制
$('#field').keypress(function (e) {
    if (e.keyCode === 13 && !e.shiftKey) {
        e.preventDefault();

        if ($('#field').val() === '') return false;

        let comment = {
            card: $('#field').val(),
            id: generateGUID()
        };
        $('#field').val('')
        var store = JSON.parse(localStorage.getItem('todo')) || [];
        store.push(comment);
        localStorage.setItem('todo', JSON.stringify(store));
        $(this).val('');
        displayComment(comment);
    }
});

function displayComment(comment) {
    var html = $(`<div class="card" data-id="${comment.id}"><h5>${comment.card}</h5></div>`);
    $('.yorum').append(html);

    $('.yorum').find(html).click(function () {
        $(html).remove();
    });

}


var store = JSON.parse(localStorage.getItem('todo')) || [];
store.forEach(displayComment);

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-07-31 15:33:54

尝试使用localStorage对象的localStorage.removeItem('ITEM_NAME')方法。

以下是在localStorage中创建、获取和移除项的示例

代码语言:javascript
复制
localStorage.setItem('aaa','1231')  //undefined
localStorage.getItem('aaa')         //"1231"
localStorage.removeItem('aaa')      //undefined
localStorage.getItem('aaa')         //null

以下是针对您的案例的代码示例:

代码语言:javascript
复制
function displayComment(comment) {
    var html = $(`<div class="card" data-id="${comment.id}"><h5>${comment.card}</h5></div>`);
    $('.yorum').append(html);

    $('.yorum').find(html).click(function () {
        $(html).remove();
        var arr = JSON.parse(localStorage.getItem('todo'));
        for(var i=0;i<arr.length;i++)
          {
            if(arr[i].id=this.getAttribute('data-id'))
            {
              arr.splice(i,1);
              break;
            }
          }
        localStorage.setItem('todo', JSON.stringify(arr));
    });

}
票数 1
EN

Stack Overflow用户

发布于 2018-07-31 15:34:06

代码语言:javascript
复制
localStorage.removeItem(key);

根据需要更换密钥

票数 0
EN

Stack Overflow用户

发布于 2018-07-31 15:44:35

在您的click处理程序中,您还必须获取解析后的本地存储值,然后调用splice(index,1),将条目编号作为"index“进行传递。

就像这样..。

代码语言:javascript
复制
$('#field').keypress(function (e) {
    if (e.keyCode === 13 && !e.shiftKey) {
        e.preventDefault();

        if ($('#field').val() === '') return false;

        let comment = {
            card: $('#field').val(),
            id: generateGUID()
        };
        $('#field').val('')
        var store = JSON.parse(localStorage.getItem('todo')) || [];
        store.push(comment);
        localStorage.setItem('todo', JSON.stringify(store));
        $(this).val('');
        displayComment(comment, store.length-1);
    }
});

function displayComment(comment, index) {
    var html = $(`<div class="card" data-id="${comment.id}"><h5>${comment.card}</h5></div>`);
    $('.yorum').append(html);

    $('.yorum').find(html).click(function () {
        $(html).remove();
        var store = JSON.parse(localStorage.getItem('todo')) || [];
        store.splice(index, 1);
        localStorage.setItem('todo', JSON.stringify(store));
    });

}


var store = JSON.parse(localStorage.getItem('todo')) || [];
store.forEach(displayComment);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51607778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档