1

是小提琴。我试图ul通过将 保存ul为 a来将预先添加的注释存储在 a 中var,并使用localStorage它来将其保存到浏览器中。

HTML:

<h1>Commentia!!!</h1>
<textarea id='type'></textarea>
<br />
<input type='text' id='input'>
<br />
<br />
<button id='b' onclick='comment()'>Submit</button>
<div id='box'>Type your comment
<br />(please use spaces)</div>
<div id='button'>Click to submit</div>
<div id='inp'>Type your name</div>
<div id='dialog'></div>
<h3>Comments</h3>
<ul id='ul'></ul>

JS:

var l = $('#ul').val();
localStorage.comments = l;
document.getElementById('ul').innerHTML = localStorage.comments;
4

1 回答 1

0

val()显然是为了获取表单元素的值。在列表上尝试它会返回一个空字符串。您可以使用 获取内部html $('#ul').html(),然后将其字符串化为localStorage.

就像是:

var l = $('#ul').html();
localStorage.comments = JSON.stringify(l);

要在以后恢复这些(我在这里使用 jQuery,因为它仍然可用):

$('#ul').html(JSON.parse(localStorage.comments));

(未经测试)。采取这种方法有什么特别的原因吗?

编辑:检查实际保存的内容很容易。在 Chrome 中,开发工具位于 Chrome 菜单下的Tools,或右键单击网页中的任意位置和Inspect element.

选项卡中列出了 LocalStorage(以及许多其他内容)Resources。您还可以转到Console选项卡并键入localStorage以直接访问对象。

请记住,localStorage 仅存储字符串,并且每个“来源”限制为 5MB,我认为这意味着主机。如果您在 localhost 上进行大量测试,我想您有可能在某个时候达到配额。

此外,之前的评论者对使用getItem()/有一个很好的观点setItem()。而不是使用localStorage.comments你会使用localStorage.getItem('comments').

于 2013-08-31T19:25:18.363 回答