document.getElementById('form').addEventListener('submit', saveItem);
function saveItem(e){
var items= document.getElementById('items').value;
var date= document.getElementById('date').value;
var price= document.getElementById('price').value;
var expense= {
items: items,
date: date,
price: price
}
if(localStorage.getItem('bill')==null){
var bill=[];
bill.push(expense);
localStorage.setItem('bill', JSON.stringify(expense));
} else{
var bill = JSON.parse(localStorage.getItem('bill'));
bill.push(expense);
localStorage.setItem('bill', JSON.stringify(expense));
console.log(bill);
}
e.preventDefault();
}
如果
没有错误if(localStorage.getItem('bill')==null)
但是其他地方出现错误
Uncaught TypeError: Cannot read property 'push' of undefined
at HTMLFormElement.saveItem
当本地存储空时存储数据,但如果数据不存储则无法添加数据。
答案 0 :(得分:0)
请检查一下JSON.parse(localStorage.getItem('bill'));
的结果是什么?它是一个有效的数组吗?
答案 1 :(得分:0)
您的费用是一个对象,您需要将帐单保存在本地存储中。
if(localStorage.getItem('bill')==null){
var bill=[];
bill.push(expense);
localStorage.setItem('bill', JSON.stringify(bill));
}