【发布时间】:2018-03-02 08:45:48
【问题描述】:
我刚开始编程,我正在玩这个待办事项列表。现在我想将我的待办事项添加到本地存储中。
但是每次我在列表中添加一个新项目时,我都会覆盖一个并且只做项目。
我该如何解决这个问题?
代码如下:
$(document).ready(function() {
var data = JSON.parse(localStorage.getItem("todoData"));
for (var i = 0; i < localStorage.length; i++) {
$('#thingsTodo').append('<div class="section">' +
'<li id="listItem" class="blue-text text-darken-2 tooltip">' + data + '<span class="tooltiptext">Click to edit</span></li>' +
'<i class="small material-icons deleteThisItem">delete</i>' +
'<div class="divider"></div>');
}
$('#addItem').on('click', addItemToList);
$('#thingsTodo').on('click', '.deleteThisItem', deleteItem);
$('#thingsTodo').on('click', '#listItem', editItem);
function addItemToList() {
var newItem = {
value: $('#inputField').val()
};
if (newItem.value !== '') {
localStorage.setItem("todoData", JSON.stringify(newItem.value));
$('#thingsTodo').append('<div class="section">' +
'<li id="listItem" class="blue-text text-darken-2 tooltip">' + newItem.value + '<span class="tooltiptext">Click to edit</span></li>' +
'<i class="small material-icons deleteThisItem">delete</i>' +
'<div class="divider"></div>');
$('#inputField').val("");
} else {
alert("Please make sure you enter something before clicking the button");
}
}
function deleteItem() {
$(this).closest('.section').remove();
$(this).closest('.divider').remove();
}
function editItem() {
var newTodoInput = {
newValue: prompt("Please edit your todo item")
};
if (typeof newTodoInput.newValue !== 'object') {
if (newTodoInput.newValue !== "") {
$(this).replaceWith('<li id="listItem" class="blue-text text-darken-2 tooltip">' + newTodoInput.newValue + '<span class="tooltiptext">Click to edit</span></li>');
}
} else {
alert("Please make sure you enter something before clicking the button");
}
}
});
如果可能,请在我编辑列表项时告诉我如何保存它。
【问题讨论】:
-
我在发布我的帖子之前确实找到了该帖子,但我似乎无法让它工作......
-
然后edit您的问题包括您如何在答案中实施建议以及它们如何不起作用。
-
到目前为止我尝试了 100 件事情......到目前为止我尝试过的所有事情都没有真正保存......所以不是一个真正的选择。对不起
-
快完成了,我现在有了,所以它可以保存超过 1 项,但它只会保存您上次会话的所有内容。
标签: javascript jquery local-storage