Local Storage值未设置问题:待办功能代码求助
问题原因
你代码里的核心问题是获取输入框值的时机不对:页面加载执行todo()时,就直接获取了#input_box的value,这时候用户还没在输入框里填写内容,value是空字符串。后续点击按钮触发main函数时,用的还是这个初始空值,所以Local Storage里自然存不上有效内容。
修复后的代码
const todo = () => { let ok_btn = document.querySelector(".ok_btn"); function main(){ // 点击按钮时才获取输入框当前的实时值 let value = document.querySelector("#input_box").value; localStorage.setItem("0", value); } ok_btn.addEventListener("click", main); } todo();
额外优化建议
- 可以增加空值判断,避免存入无效内容:在
main函数里先检查value.trim()是否为空,为空就提示用户输入内容,再执行存储操作。 - 如果需要存储多条待办,别用固定键名
"0"(会覆盖旧内容),可以用数组形式存储:把待办项放进数组,转成JSON字符串存入Local Storage,读取时再解析回数组。
内容的提问来源于stack exchange,提问作者usefull tech
相关产品推荐
相关产品推荐

