簡體   English   中英

如何從localStorage刪除項目及其密鑰?

[英]How can I remove the item and its key from localStorage?

我創建了一個簡單的應用程序,該應用程序使用localStorage來保存和刪除數據。 問題是當我刪除項目時,它只刪除值而不是鍵,因此當我加載所有刪除的項目時,它們都為空(當然),我一直在尋找一種刪除鍵的方法,是有沒有辦法刪除它? 任何幫助表示贊賞。

PS:如果您無法在此處使用代碼,請嘗試以下操作

我的代碼:

 <html> <head> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> </head> <body> <div id="main"> <label>Task</label> <textarea id="descrip"></textarea> <button onclick="saveItUp();" id="save">Save it</button> <button onclick="deleteItUp();" id="delete">Delete</button> </div> <script> var taskCounter = Number(localStorage.getItem("count")) + 1; var name = taskCounter; var deleteTemp = 0; for (var i = 1; i < taskCounter; i++) { var temp = i; document.writeln("<br/>" + '<input type="radio" name="rad" value="' + temp + '" /> <label>' + 'Code: ' + temp + ' | Value: ' + localStorage.getItem(temp) + '</lable>'); } function saveItUp() { var desc = $('#descrip').val(); alert(desc); // Store localStorage.setItem(name, desc); localStorage.setItem("count", taskCounter); // Retrieve console.log(localStorage.getItem(name)); console.log(localStorage.getItem("count")); location.reload(); } //This is where I'm trying to do that, I know selected doesn't exist, but I put it just for a better comprehension $('input:radio').change(function() { if (this.checked) { deleteTemp = this.value; alert(this.value); } }); function deleteItUp() { if (deleteTemp !== 0) { localStorage.removeItem(deleteTemp); } else { alert('radio is not checked!'); } } </script> </body> </html> 

請參閱有關localStorage.getItem文檔

包含鍵值的DOMString。 如果鍵不存在,則返回null。

因此,您已經刪除了該項目。 它只是返回null就像對其他任何不存在的鍵一樣。

您可以檢查使用以下命令定義的所有鍵:

var n = 0, key;
while (key = localStorage.key(n++)) console.log(key);

您會看到刪除的密鑰實際上已經消失了。

密鑰對存儲為localStorage屬性,因此您可以刪除該屬性,該屬性也將刪除該值。

delete localStorage.count; // deletes both the key and value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM