首页 > 解决方案 > $("输入").val(); 如果它在函数之外,则不返回值

问题描述

<input id="tel" type="text" placeholder="input" /><br><br>
<button>Check</button>

此代码不起作用

let myTel = $("#tel").val();
$('button').click(function(){  
    console.log(myTel);  
}); 

此代码有效

$('button').click(function(){ 
    let myTel = $("#tel").val(); 
    console.log(myTel);  
}); 

当我要在函数外声明变量 myTel 时,我该怎么办

https://jsfiddle.net/Nata_Hamster/6wkqnxL5/

标签: functionscope

解决方案


因为在上例中,当let myTel = $("#tel").val();加载输入没有 vlaue 时,let 为空,并且事件触发回调显示 smae 值 fron let。

在第二种情况下,当事件触发时,它会在该时间实例中获取值,因此从中获取实际输入填充值。

你可以这样做

let myTel=null;
$('button').click(function(){ 
   myTel= $("#tel").val(); 
   console.log(myTel);  
}); 

推荐阅读