0

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

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

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

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

4

1 回答 1

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]当您调用toString对.<table>

document.createElement('table').toString() // "[object HTMLTableElement]"
于 2013-07-11T19:57:15.197 回答