为javascript中的元素数组设置localstorage

时间:2019-05-03 18:49:41

标签: javascript local-storage

我需要使用香草JavaScript将对象值数组设置为localstorage。

我尝试遍历数组并获取每个索引,然后设置每个索引似乎无效。但是,如果我只引用每个元素,它就会起作用,这很奇怪...

const theme_cache = [document.getElementById('panel').style.background,document.getElementsByClassName('icon-bar')[0].style.color]

     const saved_theme_cache = JSON.parse(localStorage.getItem('cached-elements'));

    element.onchange = function(){
         localStorage.setItem('cached-elements', JSON.stringify(theme_cache));
    }   

1 个答案:

答案 0 :(得分:3)

localStorage是一个键/值对,仅接受strings作为值参数。当传递其他内容时,它将称为toString()表示形式。您应该使用JSON.stringify和JSON.parse对值进行序列化/反序列化。

const listOfTests = [{test: "test"}]
localStorage.setItem("tests", JSON.stringify(listOfTests));

const listOfTestsFromLocalStorage = JSON.parse(localStorage.getItem("tests"))