我是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));
});
});
您可以在此处试用该应用程序:
您能解释一下我做错了什么以及如何从localStorage中删除它。
谢谢
答案 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));
});