2016-12-05 92 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'的時候,可以使用嚴格比較運算符'!=='。對於這種特殊情況,這不會有太大的改變,但這是一個很好的習慣! –