全局变量声明返回undefined,点击按钮时inputValue打印undefined的原因
问题分析与解决
核心问题
- 选择器语法错误:你写的
document.querySelector("\".addButton\"")里嵌套了多余引号,导致无法正确匹配DOM元素,这会让input变量获取不到输入框元素,直接取.value自然返回undefined。 - 值的获取时机错误:页面加载时就获取输入框的
.value,此时用户还没输入内容,inputValue保存的是初始空值,点击按钮时打印的是这个旧值,而非当前输入的内容。
修正后的代码
const addButton = document.querySelector(".addButton"); const listBox = document.querySelector(".listBox"); const input = document.querySelector(".addtext"); // 先获取输入框元素,暂不取value addButton.addEventListener('click', () => { const inputValue = input.value; // 点击时实时读取当前输入值 console.log(inputValue); });
关键修改点
- 移除选择器内多余的嵌套引号,确保能正确定位DOM元素
- 将获取输入框值的逻辑移到点击事件回调中,每次点击都实时读取最新输入内容
- 用
const替代不必要的let,保持变量声明的严谨性
内容的提问来源于stack exchange,提问作者Samuel666
相关产品推荐
相关产品推荐

