HTML5 localstorage添加双引号

问题描述 投票:1回答:2

我目前正在为变量分配字段的值:

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时,它会输出带有双引号的字符串:“我的名字”

有谁知道为什么会这样,我怎么能阻止双引号出现?

json html5 local-storage
2个回答
10
投票

这与本地存储无关。

使用JSON.stringify将数据结构转换为JSON时,会添加引号。

从本地存储中检索JSON后,应该使用JSON.parse将JSON转换回JavaScript数据结构。


使用JSON的目的是确保您存储的是字符串,因为本地存储只能存储字符串。

由于您获得了输入的值,因此您知道它将是一个字符串。所以你可以完全放弃JSON,而不是首先放弃JSON.stringify


-1
投票

localStorage始终使用双引号存储字符串数据,当您检索相同的数据时,您将获得双引号。所以只需使用JSON.parse来修复它。

var retrievedUserName = JSON.parse(localStorage.getItem('userName'));
© www.soinside.com 2019 - 2024. All rights reserved.