在localstorage中存储数组

时间:2016-06-06 14:24:08

标签: javascript php jquery arrays html5

我有一个包含多个问题的测验页面,该页面一次显示1个问题。问题的答案显示在按钮中。无论何时按下按钮,都会从数据库中获取第二个问题并显示。我有一个脚本,将按下的按钮的值放在一个数组中,但是当重新加载页面时,数组将被清空。我被告知使用localstorage但我不知道它是如何工作的,这是我用来在数组中存储数据的代码:

 $( document ).ready(function() {

           var antwoordenObject1= new Array();
            $('.btn').click(function() {
                 antwoordenObject1.push($(this).val());

                  alert("newArray contents = "+ antwoordenObject1);

            });
       });

我发现这个代码将数组放入localstorage但不知道如何将这两个结合起来:

var complexdata = [1,2,3,4,5,6];

// store array data to the localstorage
localStorage.setItem("list_data_key",  JSON.stringify(complexdata));

//Use JSON to retrieve the stored data and convert it 
var storedData = localStorage.getItem("complexdata");
if (storedData) {
  complexdata = JSON.parse(storedData);

}
document.write(complexdata);

2 个答案:

答案 0 :(得分:2)

像这样:

 $( document ).ready(function() {
       var antwoordenObject1 = localStorage.getItem("antwoorden");
       antwoordenObject1 = antwoordenObject1 ? JSON.parse(antwoordenObject1) : [];
       $('.btn').click(function() {
           antwoordenObject1.push($(this).val());
           localStorage.setItem("antwoorden",  JSON.stringify(antwoordenObject1));
           alert("newArray contents = "+ antwoordenObject1);

       });
});

答案 1 :(得分:1)

您必须使用.setItem()的{​​{1}}和.getItem()方法。

注意: LocalStorage只能存储字符串。所以,如果你尝试:

localStorage

它将存储var a = { test: "foo" } localStorage.setItem("test", a); 而不是对象本身。对于数组,它将是逗号分隔的字符串。

您还必须使用[object Object]JSON.stringify进行正确沟通。