在jQuery中附加本地存储项

时间:2018-04-13 22:34:26

标签: javascript jquery local-storage

我正在尝试显示以前搜索过的位置列表。我正在整个网站上使用会话存储,并专门为搜索历史使用本地存储。

目前

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应用程序选项卡上,会话存储显示名称的键,最新名称出现在那里。它还显示一个值为""的空白键,我不明白为什么或如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

很可能是因为脚本中有$("#name").val()行代码。因为您试图获取所使用元素(<span id="name"></span>)上没有或不可用的span标记的值。

然后,您将此作为在本地存储中设置数据的密钥。因为这是空的,所以你看到""。只需将$("#name").val()替换为$("#name").html()或以其他方式访问您要在本地存储中保存的值。

希望有所帮助

由于