我目前正在将字段的值分配给变量:
userName = document.getElementById('userName').value;
然后将该变量分配给localstorage:
localStorage.setItem('userName', JSON.stringify(userName));
在此处检索该项目:
var retrievedUserName = localStorage.getItem('userName');
然后尝试将项目的内容输出到HTML div:
document.getElementById("response-heading-name2").innerHTML = retrievedUserName;
...但是当我检查HTML时,它会输出带有双引号的字符串:"我的名字"
有谁知道为什么会这样,以及如何阻止双引号出现?
答案 0 :(得分:10)
这与本地存储无关。
使用JSON.stringify
将数据结构转换为JSON时,会添加引号。
从本地存储中检索JSON后,应该将JSON转换回JSON.parse
的JavaScript数据结构。
使用JSON的目的是确保您存储的内容是字符串,因为本地存储只能存储字符串。
由于您获得了输入的值,因此您知道它将是一个字符串。所以你可以完全放弃JSON而不是JSON.stringify
它。
答案 1 :(得分:-1)
localStorage始终使用双引号存储字符串数据,当您检索相同的数据时,您将获得双引号。所以只需使用JSON.parse
来修复它。
var retrievedUserName = JSON.parse(localStorage.getItem('userName'));