我使用本地存储来存储div元素。不过,最后我想从本地存储中检索div元素,但是每次这样做,我都会得到输出:"object HTMLDivElement",它是一个字符串。
是否有任何方法将接收到的结果转换为HTML元素,这样我就可以得到我在开头存储的相同的div?
发布于 2022-07-04 17:52:17
localStorage 只能存储字符串.您不能在其中存储DOM节点,JS只会说“是的,这不起作用,让我先把它转换成字符串”,然后使用一般的“括号中的对象类型”字符串。
如果要存储HTML元素,不要存储元素本身,而是存储它的outerHTML源代码,这是一个字符串。
// convert page element to string:
function storeElement(element, keyName) {
localStorage.setItem(keyName, element.outerHTML);
}
// reconstitute the page element from string:
function retrieveElement(keyName, preserve=false) {
const stored = localStorage.getItem(keyName);
if (!preserve) localStorage.removeItem(keyName);
const helper = document.createElement(`section`);
helper.innerHTML = stored;
return helper.childNodes[0];
}
https://stackoverflow.com/questions/72860384
复制相似问题