[英]Global variable declaration returns undefined, any reason for this
当我将输入记录到控制台时,它返回未定义但当放入匿名 function 中时,它按预期记录到控制台
我尝试了下面的代码,并希望在单击 addButton 时将 inputValue 记录到控制台,但是,记录时 inputValue 的值未定义,inputValue 的值是从输入框获取的。
`
const addButton=document.querySelector(".addButton");
let listBox=document.querySelector(".listBox");
let input=document.querySelector(".addtext").value;
let inputValue=input;
addButton.addEventListener('click',()=>{
console.log(inputValue)});
</script>
</body>
</html>`
可能是因为这行代码在更改之前捕获了值:
let input=document.querySelector(".addtext").value;
尝试这个:
const addButton=document.querySelector(".addButton");
let listBox=document.querySelector(".listBox");
let input=document.querySelector(".addtext");
addButton.addEventListener('click',()=>{
console.log(input.value)});
这是我根据您的示例创建的一些代码。 我还包括一个用于演示的代码笔。
关键字let
没有被提升,限制在 scope。用var
定义的变量被提升,意味着它们被带到脚本的顶部,并在浏览器处理 JS 文件时首先执行。
这是我的代码,我将所有针对控件的变量设为const
。
然后我在事件处理程序中引用value
属性。
<div>
<select class="listBox">
<option value="a"> Option A </option>
<option value="b"> Option B </option>
<option value="c"> Option C </option>
</select>
<input type="text" class="addtext" />
<button class="addButton"> Add </button>
</div>
这是JS代码:
const addButton=document.querySelector(".addButton");
const listBox=document.querySelector(".listBox");
const input=document.querySelector(".addtext");
addButton.addEventListener('click',() => {
console.log(input.value)
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.