Javascript 本地存储删除.item
我有一个todo应用程序。我使用了jquery和localstorage。代码是正确的,但ı无法从localstorage中删除任务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)'
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为不便之处:-)