我需要使用香草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));
}
答案 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"))