我正在尝试显示以前搜索过的位置列表。我正在整个网站上使用会话存储,并专门为搜索历史使用本地存储。
目前
if (typeof(Storage) !== "undefined") {
//saves name in local storage (for histoy list)
localStorage.setItem("name", currentWeather.name);
//saves name in session storage - could be other things
sessionStorage.setItem("name", currentWeather.name);
// Retrieve session storage name to display back current location on search page
document.getElementById("name").innerHTML = sessionStorage.getItem("name");
// History
var previous = {
location : $("#name").val(),
}
var record = JSON.stringify(previous.location);
localStorage.setItem(previous.location, record);
for (var i = 0; i < localStorage.length; i++){
$("#record").append(localStorage.getItem(localStorage.key(i)));
}
HTML:
<p>Location set to: <span id="name"></span></p>
<p>Record:</p>
<a id="record"></a>
因此,在尝试列入列表之前,我只想让位置简单输出。目前它出现了这样:
&#34;&#34;曼彻斯特&#34;&#34;爱丁堡
在Chrome应用程序选项卡上,会话存储显示名称的键,最新名称出现在那里。它还显示一个值为""
的空白键,我不明白为什么或如何解决这个问题。
答案 0 :(得分:1)
很可能是因为脚本中有$("#name").val()
行代码。因为您试图获取所使用元素(<span id="name"></span>
)上没有或不可用的span标记的值。
然后,您将此作为在本地存储中设置数据的密钥。因为这是空的,所以你看到""
。只需将$("#name").val()
替换为$("#name").html()
或以其他方式访问您要在本地存储中保存的值。
希望有所帮助
由于