我正在尝试创建一个页面,其中页面上每个无序列表中的项目都存储在本地存储中。到目前为止,我只能存储一个列表。
我的问题是我无法弄清楚如何存储多个元素ID。
这是我使用的代码,其中包含' m1s1w1'是无序列表的id。
$(document).ready(function() {
var list = document.getElementById('m1s1w1');
$("#saveAll").click(function(e) {
e.preventDefault();
localStorage.setItem('todoList', list.innerHTML);
});
$("#clearAll").click(function(e) {
e.preventDefault();
localStorage.clear();
location.reload();
});
loadToDo();
function loadToDo() {
if (localStorage.getItem('todoList')){
list.innerHTML = localStorage.getItem('todoList');
}
}
});
要温柔。我搜索了几个小时,我还是比较新的。
编辑:这是HTML。有许多列表:' m1s1w1',' m1s1w2'等我为了简洁而删除了一些列表项。
<div id="tabs">
<ul>
<li><a href="#tabs1">M1</a></li>
<li><a href="#tabs2">M2</a></li>
<li><a href="#tabs3">M3</a></li>
<li><a href="#tabs4">M4</a></li>
<li><a href="#tabs5">M5</a></li>
<li><a href="#tabs6">M6</a></li>
</ul>
<div id="tabs1">
<div id="m1semester1" class="accordion">
<h3>Semester 1</h3>
<div>
<ul id="m1s1w1" class="sortable">
<p>Week 1</p>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrow-4"></span>
<span class="ce">Item 1</span>
</li>
</ul>
<ul id="m1s1w2" class="sortable">
<p>Week 2</p>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrow-4"></span>
<span class="ce">Item 1</span>
</li>
</ul>
</div>
</div>
<div id="m1semester2" class="accordion">
<h3>Semester 2</h3>
<div>
<ul id="m1s2w1" class="sortable">
<p>Week 1</p>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrow-4"></span>
<span class="ce">Item 1</span>
</li>
</ul>
<ul id="m1s2w2" class="sortable">
<p>Week 2</p>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrow-4"></span>
<span class="ce">Item 1</span>
</li>
</ul>
</div>
</div>
<p>
<button id="saveAll">Save All</button> |
<button id="clearAll">Clear All</button>
</p>
</div>
答案 0 :(得分:2)
如果我理解正确,您可以遍历列表并将其内容保存为数组:
$(document).ready(function() {
$("#saveAll").click(function(e) {
e.preventDefault();
var listContents = [];
$("ul").each(function(){
listContents.push(this.innerHTML);
})
localStorage.setItem('todoList', JSON.stringify(listContents));
});
$("#clearAll").click(function(e) {
e.preventDefault();
localStorage.clear();
location.reload();
});
loadToDo();
function loadToDo() {
if (localStorage.getItem('todoList')){
var listContents = JSON.parse(localStorage.getItem('todoList'));
$("ul").each(function(i){
this.innerHTML = listContents [i];
})
}
}
});