不是在简单的提醒中删除localStorage

时间:2014-03-01 17:21:28

标签: javascript jquery jquery-mobile cordova local-storage

我是js的新手,我非常感谢你对我遇到的这个问题的帮助。

尝试从本地存储中删除所选项目。

我尝试了这两个功能:

删除孔列表:

    $('#delete').on('click', function() {
    var radioButton = $('input[name="checked"]:checked');
    var item = radioButton.parent();

    console.log(TheList);

    item.fadeOut(500, function(){
        var index = item.index();
        TheList.splice(index, 1);
        localStorage.setItem('TaskList', JSON.stringify(TheList));
        item.remove();            

        alert('"' + radioButton.attr('value') + '" was deleted!');

    });
});

从列表中删除它,但不从本地存储中删除

    $('#delete').on('click', function() {
    var radioButton = $('input[name="checked"]:checked');
    var itemName = radioButton.attr('value');
    var item = radioButton.parent();

    item.fadeOut(500, function(){
        item.remove();
        for (var j = 0; j < TheList.length; j++) {
            if (TheList[j].text == itemName) {
                delete TheList[j];
            }
        }
        localStorage.setItem('TaskList', JSON.stringify(TheList));  
    });
});

您可以在此处试用该应用程序:

http://jsfiddle.net/6LQZm/

您能解释一下我做错了什么以及如何从localStorage中删除它。

谢谢

2 个答案:

答案 0 :(得分:0)

您没有使用removeItem(),要从localStorage中删除该项,您应该使用localStorage.removeItem()这样的内容。

    item.fadeOut(500, function(){
    localStorage.removeItem(itemName);

答案 1 :(得分:0)

要从数组中删除项目,您应使用splice。但是,您的第一个代码段不可靠,因为您不应该依赖.index()。试试这个:

item.fadeOut(500, function () {
    item.remove();
    for (var j = 0; j < TheList.length; j++) {
        if (TheList[j].text == itemName) {
            TheList.splice(j, 1);
            break;
        }
    }
    localStorage.setItem('TaskList', JSON.stringify(TheList));
});

演示:http://jsfiddle.net/6LQZm/2/