在这种情况下,如何在javascript中访问函数内部的变量?
我正在访问javascript变量,但无法使用以下代码访问它在这种情况下,如何在javascript中访问函数内部的变量?,javascript,Javascript,我正在访问javascript变量,但无法使用以下代码访问它 <script type="text/javascript"> function msg1(a) { var1=a; } function msg2(b) { var2=b; } </script> <input type="radio" name="people" onfocus="msg1(this.value);" value="2"> <inp
<script type="text/javascript">
function msg1(a)
{
var1=a;
}
function msg2(b)
{
var2=b;
}
</script>
<input type="radio" name="people" onfocus="msg1(this.value);" value="2">
<input type="radio" name="rating" onfocus="msg2(this.value);" value="5">
<script type="text/javascript">
if(var1==2 && var2==5)
document.getElementById("scores").innerHTML='511';
</script>
函数msg1(a)
{
var1=a;
}
函数msg2(b)
{
var2=b;
}
if(var1==2&&var2==5)
document.getElementById(“分数”).innerHTML='511';
但是,当我直接调用函数时,代码将运行,而不是通过onfocus事件调用函数。正在运行的代码是:-
<script type="text/javascript">
function msg1(a)
{
var1=a;
}
function msg2(b)
{
var2=b;
}
msg1(2);
msg2(5);
if(var1==2 && var2==5)
document.getElementById("scores").innerHTML='511';
</script>
函数msg1(a)
{
var1=a;
}
函数msg2(b)
{
var2=b;
}
msg1(2);
msg2(5);
if(var1==2&&var2==5)
document.getElementById(“分数”).innerHTML='511';
我无法找出代码中不起作用的错误是什么。请告诉我。这是一个时间问题
- 当页面加载时,尝试读取变量
- 当输入接收焦点时,尝试设置变量
在更改变量值的事件处理程序中,移动用于测试变量值的逻辑
您还应该在加载页面时声明它们(并可能为它们提供默认值)。否则,第一个事件处理程序将尝试设置其中一个,然后读取两个(在这一点上,一个将被取消声明,您仍然会得到一个引用错误)。有一点相关:,您正在设置全局变量,这可能有点危险。@Cerbrus-不,这与范围无关。@Quentin:啊,您是对的。完全忽略了焦点。至少我没有mjolnir,我认为一个简单的
var1=0,var2=0在之前,函数msg1(a)
将使其工作@昆汀已经给出了同样的解释。@obsergeek-不,这将阻止它出错。它无法工作,因为当值更改时,不会重新运行IF-THEN innerHTML代码。