点击按钮保存input内容到localStorage时报innerHTML为null,哪里出错了?
问题修复方案
你代码存在3处错误,按以下说明修改即可:
- 错误1:
getElementById不需要加#前缀getElementById方法的入参直接填写id字符串即可,#是CSS选择器语法,仅在querySelector/querySelectorAll方法中使用。错误的前缀会导致inputAnswer拿到null值,后续操作自然报错。 - 错误2:事件监听绑定的回调函数不能加括号
你写的addEventListener("click", saveToStorage())会在代码执行到这一行时直接调用saveToStorage,而非点击按钮时触发。需要去掉括号,直接传入函数引用。 - 错误3:input元素取输入值用
value而非innerHTMLinnerHTML用于读取/写入元素内部的HTML内容,input是单标签元素,用户输入的内容存储在value属性中,用innerHTML永远拿不到正确值。
修正后完整代码
<!-- 页面结构不变 --> <input type="text" id="answer" /> <button id="button">click me</button> <script> var inputAnswer = document.getElementById("answer") var buttonEl = document.getElementById("button") buttonEl.addEventListener("click", saveToStorage) function saveToStorage() { localStorage.setItem("task", inputAnswer.value); } </script>
内容的提问来源于stack exchange,提问作者Ted
相关产品推荐
相关产品推荐

