从localstorage ajax中删除项目

时间:2014-03-25 08:07:43

标签: javascript jquery ajax html5

我在localstorage中有一些数据看起来像这个shotemup_dslfjsdlfjsdf_1395732812679 8(键,值),经过一些动作后我需要将这些数据发送到服务器,如果成功,我需要删除1行来自localstorage

for(var i=0, len=localStorage.length; i<len; i++) {
                var name = localStorage.key(i);
                var score = localStorage[name];
                console.log(name + " " + score);
                title = name.substring(0, name.indexOf('_'));
                username = name.substring(name.indexOf('_') + 1, name.lastIndexOf('_'));
                var toDelete = name;
                if(title == "shotemup"){
                    $.ajax({
                        type: "POST",
                        url: "/scores",
                        data : {name : username, score : score },
                        statusCode :{
                            400: function() {
                                console.log("Wrong data");
                            },
                            200: function(){
                                console.log(toDelete);
                            }
                        },

                    });
                }
            }

但是当我记录我要删除的内容时,我有相同的行(在200代码处理程序中) 例如我在localstorage中 localstorage 200代码处理程序中的shotemup_123_1395733862023 8235 shotemup_2342_1395733866192 8235 shotemup_dslfjsdlfjsdf_1395732812679 8将记录shotemup_dslfjsdlfjsdf_1395732812679 3次

2 个答案:

答案 0 :(得分:3)

您可以使用removeItem()方法

for (var i = 0, len = localStorage.length; i < len; i++) {
    //use a closure to escape the loop variable
    (function(i){
        var name = localStorage.key(i);
        var score = localStorage[name];
        console.log(name + " " + score);
        title = name.substring(0, name.indexOf('_'));
        username = name.substring(name.indexOf('_') + 1, name.lastIndexOf('_'));
        var toDelete = name;
        if (title == "shotemup") {
            $.ajax({
                type: "POST",
                url: "/scores",
                data: {
                    name: username,
                    score: score
                },
                statusCode: {
                    400: function () {
                        console.log("Wrong data");
                    },
                    200: function () {
                        console.log(toDelete);
                        //remove item with the given name
                        localStorage.removeItem(name)
                    }
                },

            });
        }

    })(i);
}

答案 1 :(得分:0)

您可以使用以下方法: -

localStorage.removeItem('name');

此方法用于从localStorage中删除单个和颗粒物品。

localStorage.clear();

此方法用于copmletely清除localStorage。