如何在jQuery中更新变量值?如何在函数更新时更新变量值?我在jQuery中检查了变量的范围,但我不明白。
<script>
$(document).ready(function(){
var s = 9;
function data()
{
var s = 11;
}
data();
alert(s);
});
</script>
我希望11提醒数据,但我得到9.如果更新了函数,我该如何更新值。请帮帮我。
答案 0 :(得分:2)
我认为你的意思是11而不是80,或者你可能没有正确解释它。
此处s
是全局变量,您可以在data
函数中修改其值。在var s
函数中使用data
时,它会创建一个新的变量名s
,其范围仅限于该函数。这就是为什么你的范围超出范围的原因。
$(function(){
var s = 9;
function data()
{
s = 11; //removed var from here, if you use var here it will...
//create new variable whose scope will end outside this function.
}
data();
alert(s);
});
推荐阅读:
答案 1 :(得分:2)
首先,这不是关于jQuery的问题。代码中的“$(document).ready”...包装器与问题无关。
其次,就像我在评论中所说的那样,我假设你问题中的“70”和“80”是错误的,你的意思是说“9”和“11”。
要回答您的问题,您需要在var
之前移除s = 11
。这段代码应该做你想要的:
var s = 9;
function data()
{
s = 11;
}
data();
alert(s);
当你添加“var”时,你告诉代码s
应该只存在于当前函数(data
)的范围内,并覆盖任何其他名为“s”的变量。外部范围。如果没有“var”,则两个s
引用相同的变量。
我建议研究“Javascript中的范围”,并学习更多关于“var”和变量范围的工作原理。
答案 2 :(得分:0)
嗨,我不认为你可以从这个脚本中得到70警告。
并且我们无法通过这些值获得80警告,从这个脚本中你将获得警报框中的9,因为你将var s
定义为两次,一个是全局的,另一个是私有的,当你要去警报然后脚本采取全局。你可以使用以下脚本在警报框中获得11:
<script>
$(document).ready(function(){
var s = 9;
function data()
{
s = 11;
}
data();
alert(s);
});
</script>