Javascript 本地存储删除.item

Javascript 本地存储删除.item,javascript,jquery,local-storage,Javascript,Jquery,Local Storage,我有一个todo应用程序。我使用了jquery和localstorage。代码是正确的,但ı无法从localstorage中删除任务 function appendTaskToList(val) { $('#list').append($("<li id='task-' + i > <a href='#' class='done-btn'>Done</a>" +" " + val + " <a href='javascript:void(0)'

我有一个todo应用程序。我使用了jquery和localstorage。代码是正确的,但ı无法从localstorage中删除任务

function appendTaskToList(val) {
    $('#list').append($("<li id='task-' + i >  <a href='#' class='done-btn'>Done</a>" +" " + val + " <a href='javascript:void(0)' class='cancel-btn'>Delete</a></li>").data("erdem", "12"));
}

if (localStorage['tasks']) {
    var tasks = JSON.parse(localStorage['tasks']);
}else {
    var tasks = [];
}

for(var i=0;i<tasks.length;i++) {
    appendTaskToList(tasks[i]);

}

var addTask = function(){
    var val = $('#name').val();
    tasks.push(val);
    localStorage["tasks"] = JSON.stringify(tasks);
    appendTaskToList(val);
    $('#name').val("").focus();
};

localStorage.username = $('#add-btn').click(addTask);
$('#name').keyup(function(e){
    if (e.keyCode === 13) {
        addTask();
    }
});

$(document).delegate('.done-btn', 'click', function() {
    $(this).parent('li').addClass('done');
    return false;
});

$(document).delegate('.cancel-btn', 'click', function() {
    $(this).parent('li').remove();
    localStorage.removeItem($(this).parent('li').remove());
});
函数appendTaskToList(val){
$('#list').append($(“
  • ”+“”+val+“
  • ”).data(“erdem”,“12”); } if(localStorage['tasks']){ var tasks=JSON.parse(localStorage['tasks']); }否则{ var任务=[]; } 对于(var i=0;i本地存储器的
    removietem()
    方法,当传递密钥名时,将从存储器中删除该密钥

    对于代码,您可以从li中提取任务名称,然后使用该名称更新任务数组,然后更新本地存储
    tasks

    对于您的代码:

    //extract task name from the li element
    var nameOfTask = $(this).parent('li').clone().children().remove().end().text().trim();
    //find index in the task element
    var index = tasks.indexOf(nameOfTask);
    
    tasks.splice(index,1);
    localStorage["tasks"] = JSON.stringify(tasks);
    

    请参阅以下参考:'

    方法需要一个键名作为参数。但是您传递了jquery的
    remove()的结果
    method,它是jquery对象。如何定义键?与调用方法时使用的方法相同。您应该更新localStorage“Tasks”键中的值,但不应删除项。这意味着您应该在“Tasks”中获取值键,找到要删除的项并将其删除此代码工作,但它会删除反向ı要删除第一个任务,但此代码删除最后一个任务始终删除最后一个任务child@OğuzhanKaracan:你能详细说明一下上述评论吗?根据代码,我们得到了点击删除按钮的列表项,然后删除了该元素通过名称从数组中删除。ı单击数组中的第一项,但此代码删除了数组中的最后一项。ı如何修复它?更新了答案。添加了trim()函数以删除所有空格(如果存在)。现在,它将不再删除最后一项!!Sry为不便之处:-)