var dataArray = [];
localStorage.itemListRecord = JSON.stringify(dataArray);
dataArray = JSON.parse(localStorage.itemListRecord);
var dataObj = {
listItem: textInput,
};
dataArray.push(dataObj);
我正在尝试将数据保存在我的待办事项列表中,我将这些项目推送到一个对象中,我可以" stringify"并且"解析" ... 但我不确定如何调用保存的数据..
看起来这些物品根本不能进入localStorage ..
答案 0 :(得分:2)
我注意到脚本启动时,您会立即清除正在使用的localStorage.itemListRecord位置,然后再尝试从中读取它。因此,初始化时它将始终为空,并且此脚本永远不能使用那里的内容:
// Data Object
var dataArray = [];
// CHANGED: I commented out the line below so that the localstorage is not cleared
// localStorage.itemListRecord = JSON.stringify(dataArray);
dataArray = JSON.parse(localStorage.itemListRecord);
// CHANGED: added these lines only for debugging
console.log('existing data');
console.log(dataArray);
此外,我注意到当添加新的待办事项列表项时,还没有任何代码会添加到本地存储:
function listTodoItem(textInput) {
var dataObj = {
listItem: textInput,
};
dataArray.push(dataObj);
// CHANGED: added this line to update localstorage whenever an items is added to the list
localStorage.itemListRecord = JSON.stringify(dataArray);
// CHANGED: added these lines only for debugging
console.log(dataArray);
console.log(dataObj);
请注意,即使进行了这些更改,列表仍然不能反映本地存储中的内容,因为它不会根据dataArray中的内容构建初始无序列表。还需要添加更多代码。
但是根据我在这里建议的内容,当你重新运行jsfiddle时查看控制台日志中的输出,你应该能够看到localstorage部分正在运行,你可以通过这个位。
答案 1 :(得分:2)
此示例应该有效。
var textInput = "example";
var dataObj = {
listItem: textInput,
};
var dataArray = [];
dataArray.push(dataObj);
localStorage.setItem("itemListRecord", JSON.stringify(dataArray));
dataArray = JSON.parse(localStorage.getItem("itemListRecord"));
dataArray.push(dataObj);
localStorage.setItem("itemListRecord", JSON.stringify(dataArray));
答案 2 :(得分:0)
我还没有看到API
我使用Mozilla网站https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
上列出的内容此example tied to your click handler
似乎可以get
和set
好吗
检查console
日志
下面的评论 - 确切的点击处理程序已更改
// Add value from the input field
document.getElementById("new-btn").addEventListener('click', function() {
var itemValue = document.getElementById("my-input").value;
if (itemValue) {
listTodoItem(itemValue);
localStorage.setItem('data', JSON.stringify(itemValue));
console.log(localStorage.getItem('data'));
}
});