未捕获的类型错误:无法读取笔记网站中 HTMLButtonElement 的 null 属性“push”
2021-05-04
1600
我在代码中哪里犯了错误,因为它返回了一个错误:
Uncaught TypeError: Cannot read property 'push' of null at HTMLButtonElement. (app.js:15)
console.log("Welcome to Notes Taking Website");
// If user adds a note, add it to the local Storage
let addBtn = document.getElementById('addBtn');
addBtn.addEventListener("click", function(e) {
let addTxt = document.getElementById("addTxt");
let notes = localStorage.getItem("notes");
if (notes == null) {
notesObj = [];
} else {
notesObj = JSON.parse(notes);
}
notesObj.push(addTxt.value);
localStorage.setItem("notes", JSON.stringify(notes));
addTxt.value = "";
console.log(notesObj);
})
3个回答
这是因为您的 localStorage 上已经有内容。这里 else 语句正在执行,并且在 else 语句中创建了数组,所以您收到此错误。
首先清除 localStorage
localStorage.clear();
现在可以正常工作了。
Puneet Dudi
2021-05-21
JSON.parse(notes) 没有返回数组,因此它没有推送方法。它可能是一个对象,或者 notes 本身可能为空。notesObj 在哪里声明?确保它在范围内。
Ant
2021-05-05
首先通过以下方式清除 localStorage:
localStorage.clear();
同时在此行中将 (notes) 更改为 (notesObj):
localStorage.setItem("notes", JSON.stringify(notesObj));
这将正常工作!!
Sundeep Basak
2022-03-10