2013-07-11 33 views
0

我有一个ID为“roster1”的HTML表格,允许用户通过点击按钮添加表格行,我试图通过“保存”按钮保存表格状态,运行下面的代码:无法从localStorage检索动态生成的内容

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

如果我输入一些静态值到“rosterPd1”,然后我可以使用写入到localStorage的,没有问题的信息。但是,当我尝试使用上面的代码保存表时,我得到[对象HTMLTableElement]返回...这是正确的,但不是特别有用!

有人能指出我正确的方向,我必须做些什么才能让localStorage保存表格本身的内容?

回答

1

只能保存字符串存储,但它似乎是你想要做什么,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]" 
+0

谢谢保罗。并再次感谢回答我为什么获得回报的奖金。对不起 - 没有足够的代表尚未启动,但你钉在一个! –