2016-12-05 67 views
1

我试图做一个简单的待办事项列表,在jQuery中遇到了问题。这是我第一次尝试使用localStorage。因此,在为我的待办事项列表制作结构后,我想在刷新页面时查看我的项目。所以,首先我加入这一行我JS:从localStorage中删除一个项目

localStorage.setItem("todolist", $('#todoList').html()); 

然后我说

$('#todoList').html(localStorage.getItem("todolist")); 

从而使该部分工作正常,但我想另一条线在我的deleteListItem()功能删除我的待办事项从存储。这是我添加的行:

localStorage.removeItem("todolist", $('#todoList').html()); 

添加此行后,我删除了我的整个<ul>元素从浏览器。有没有办法扭转这种情况,还有什么办法可以让我的待办事项清单能够正常使用localStorage

这里是我的JSBin让你更了解我在做什么:

http://jsbin.com/ciyufi/2/edit?html,js,output

+0

'storage.removeItem'应该只接收1个参数。试试'localStorage.removeItem(“todolist”)'。 – Dekel

+0

是否关心节省内存? localstorage像地图一样工作,如果您使用完全相同的键设置另一个值,它将覆盖那里存在的内容。在设置新项目之前,您不必删除项目。 – devilfart

+0

@devilfart My ToDo列表正在制作新的“li”元素,我希望它们保持原样,当我刷新浏览器时。例如,如果我添加三个任务并删除一个刷新我不想保持那样。 – Karadjordje

回答

1

你应该先检查是否东西在localStorage的已经存在:

if (localStorage.getItem("todolist") != null) { 
    $('#todoList').html(localStorage.getItem("todolist")); // This reads items in our local storage 
} 

查看本次更新:
http://jsbin.com/damedomepi/1/edit?html,js,output

+0

在知道失败时函数的期望输出是'null'的时候,可以使用严格比较运算符'!=='。对于这种特殊情况,这不会有太大的改变,但这是一个很好的习惯! –