Localstorage将数组递增到20

时间:2016-03-07 04:25:55

标签: jquery

我的设置 我有一个Home,About和Contact页面。页面上没有任何内容,但3页上每页都有3个链接,每页中间有一个按钮。

我的目标 单击按钮的会话中的URL将被推送到一个最多可包含20个链接的数组中。它可以是多次同一页面, 但基本上,按钮可以被点击20次(如果以后在同一个会话中完成,我将弄清楚如何捕获)。

我的问题

我无法将当前会话中的URL和当前URL传递到的构建数组传递到同一个构建数组中。以下是我目前正在使用的内容:

var seshStore = [],
        localStore = [],
        currentUrl = window.location.href,
        newLink = $('<a class="new-link" href="' + currentUrl + '">new link</a>');


$(document).ready(function(){

        // push into local store from last sesh
        var storedLinks = JSON.parse(localStorage.getItem("localStore"));
        var restoredLocalStore = JSON.parse(localStorage.getItem("restoredLocalStore"));
        localStore.push(storedLinks);
        localStore.push(restoredLocalStore);

        for (var i = 0; i <= 20; i++) {
            console.log(localStore[i]);
        }
        localStorage.setItem("restoredLocalStore", JSON.stringify(localStore));



        $('.link-button').click(function(){
            $(newLink).appendTo('body');
            var reInitLink = currentUrl;

            // push current url to sesh for its storage and a temp storage for local until next sesh
            // seshStore.push(reInitLink);
            // localStore.push(reInitLink);

            localStorage.setItem("localStore", JSON.stringify(window.location.href));

            // console.log(seshStore);
        });
        // localStorage.clear();
});

1 个答案:

答案 0 :(得分:0)

我认为你没有对localStorage进行初始化&#34; localStore &#34;。

目前,您将变量 localStore 设置为数组

尝试将其设置为:

localStorage.localStore = "";

localStorage仅支持字符串

使用 JSON.stringify() [正如您使用]和 JSON.parse() [获取值]。

// Setting values
var example = ["link1", "link2", "link3"];
localStorage.setItem("names", JSON.stringify(names));

// Getting values
var localStore = JSON.parse(localStorage.getItem("localStore"));

请根据需要修改代码。