localStorage不存储前置注释

时间:2013-08-31 17:11:21

标签: javascript html local-storage

Here是小提琴。我想通过将ul保存为ul来在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;

1 个答案:

答案 0 :(得分:0)

val()显然是为了获得values of form elements。在列表上尝试它会返回一个空字符串。你可以使用$('#ul').html()获取innerhtml,然后将其localStorage字符串化。

类似的东西:

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

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

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

(未测试)。采取这种方法的任何特殊原因?

编辑:检查实际保存的内容非常简单。在Chrome中,devtools位于Tools下的Chrome菜单中,或者右键单击网页中的任意位置Inspect element

Local Resources标签中列出了LocalStorage(以及其他一些内容)。您也可以转到Console标签,然后输入localStorage直接访问该对象。

请记住localStorage只存储字符串,每个'origin'限制为5MB,我认为这意味着主机。如果你在localhost上做了很多测试,我想你有可能在某个时候达到配额。

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