2017-07-05 144 views
0

我正在構建'待辦事項列表',用戶在點擊後將新筆記添加到列表中。如何從本地存儲陣列中刪除特定項目?

我將所有附加數據保存在本地存儲中。

現在我想從數組中刪除單擊的註釋並將其保存回本地存儲。 我有這樣的代碼:

**//Here i get the note** 
    var getNote = JSON.parse(localStorage.getItem("savedNotes")) || []; 
     $("#notes-section").append(getNote); 

    **//Here i set the note** 
     getNote.push(note); 
     localStorage.setItem("savedNotes", JSON.stringify(getNote)); 



**//Here i want to remove the note from the array** 
    $(document).on('click', '.pin', function() { 
$(this).parent().css({opacity: 1.0, visibility: "visible"}).animate({opacity: 0}, 2000); 

    for(var i =0 ; i < getNote.length; i++){ 

    getNote.splice(i,1); 


     localStorage.setItem("savedNotes", JSON.stringify(getNote)); 
    } 

}); 
+1

你能把你的代碼縮小到_ [mcve] _嗎?重視最低限度。 – evolutionxbox

+0

@evolutionxbox謝謝,現在它的o.k? (我是新來的..) –

+0

好多了。顯示該問題的較短示例可幫助人們更快更準確地回答您的問題。 – evolutionxbox

回答

0

正如評論說您只需要提供相關的代碼,而只是在這裏清楚的事情了,去這裏的方法是:

  • 必須有一個空數組notes
  • 將此陣列添加到localStorage通過localStorage.setItem("savedNotes", JSON.stringify(notes))
  • 每次添加便條時,您都需要:將該數組從localStorage解析爲notes = JSON.parse(localStorage.getItem("savedNotes"))
  • 然後通過notes.push(note)將新的note推入此陣列。
  • 然後用localStorage.setItem("savedNotes", JSON.stringify(notes))再次設置此項目,它會更新您在localStorage中的現有項目。

這一切都依賴於Storage.getItem()Storage.setItem()方法。

而要從數組中刪除note,您需要做同樣的事情,期望您將在解析的數組中搜索此筆記並將其刪除。

+0

感謝您的回答,但我仍然無法弄清楚如何做到這一點,你能更具體嗎? –

+0

你需要遍歷數組,找到要從數組中刪除它的項,你可以按照[this](https://stackoverflow.com/q/10024866/3669624)。 –