我正在做一个小个人项目,但遇到了一个问题。
我需要每个 day 对象来保存各种 dom 元素对象。这些对象实例存储在一个数组中,然后该数组需要存储到 localStorage 中以便稍后加载。
问题是当我执行 JSON.stringify 然后 JSON.parse 时,它会将 HTML 节点转换为对象。因此,当我尝试附加元素时,它告诉我第一个参数不是节点。
function save() {
localStorage.days = JSON.stringify(global.days);
localStorage.numberOfDays = global.numberOfDays;
localStorage.totalCount = global.totalCount;
}
function load() {
var parsedDays = JSON.parse(localStorage.days);
parsedDays.forEach(function(day){
document.getElementById("mainPage").appendChild(day.textObject);
});
有人知道如何将包含元素的对象数组放入 localStorage 中,同时保持其节点类型???
最佳答案
如果您尝试对 dom 节点进行字符串化,那么它将返回“{}”
。因此不可能存储节点,因为它位于本地存储中。
您可以做的是将有关节点的信息存储在 localstorage 中,并根据该信息重新创建节点并将其添加到您的 dom 中。
关于javascript - 字符串化对象时,JSON 将元素节点转换为对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32331609/