无法从 localStorage 检索动态生成的内容

Posted

技术标签:

【中文标题】无法从 localStorage 检索动态生成的内容【英文标题】:Unable to retrieve dynamically generated content from localStorage 【发布时间】:2013-07-11 19:51:27 【问题描述】:

我有一个 ID 为“roster1”的 html 表格,它允许用户通过单击按钮添加表格行,并且我试图通过运行以下代码的“保存”按钮保存表格状态:

function saveRoster () 
        localStorage.setItem('rosterPd1','');
        var roster = document.getElementById ('roster1');
        localStorage.setItem('rosterPd1', roster);
        

如果我在 'rosterPd1' 中输入一些静态值,那么我可以毫无问题地使用写入 localStorage 的信息。但是,当我尝试使用上面的代码保存表格时,我得到 [object HTMLTableElement] 返回...这是正确的,但不是特别有用!

有人可以指出我必须做些什么才能让 localStorage 保存表本身的内容吗?

【问题讨论】:

【参考方案1】:

您只能将 Strings 保存到 Storage,但似乎对于您想要做的事情,innerHTML 就足够了;

function saveRoster() 
    var roster = document.getElementById('roster1');
    if (!roster) return; // not found
    localStorage.setItem('rosterPd1', roster.innerHTML); // store innerHTML

function loadRoster() 
    var roster = document.getElementById('roster1');
    if (!roster) return; // not found
    roster.innerHTML = localStorage.getItem('rosterPd1'); // get+apply innerHTML

至于为什么你会得到[object HTMLTableElement],这就是当你在 javascript<table> 的引用上调用toString 时发生的情况。

document.createElement('table').toString() // "[object HTMLTableElement]"

【讨论】:

谢谢保罗。再次感谢您回答我为什么获得回报的奖励。抱歉 - 还没有足够的代表来投票,但你已经成功了!

以上是关于无法从 localStorage 检索动态生成的内容的主要内容,如果未能解决你的问题,请参考以下文章

从服务器检索图像,将其存储在 localStorage 中,并显示它

无法从 LocalStorage Jquery 获取数组

无法在 WPF 中检索动态生成的按钮的内容

如何从动态生成的 UITextField 中检索数据?

从javascript中的localstorage中检索多个字符串值

无法从 Firebase 缩短的动态链接网址检索动态链接