繁体   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