在这种情况下如何在javascript中访问函数内部的变量?

时间:2015-06-17 14:04:31

标签: 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">
<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>

然而,不是通过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>

我无法弄清楚代码中的错误是什么。 Plz建议我。

1 个答案:

答案 0 :(得分:2)

这是一个时间问题。

  • 您尝试在页面加载时读取变量
  • 您尝试在输入获得焦点时设置变量

由于在您尝试阅读它们时尚未设置它们,因此会出现错误。

你再也不会尝试阅读它们了。

您必须先设置它们才能阅读它们。

移动逻辑以测试更改它们的事件处理程序中的变量值。

加载页面时,您还应声明它们(并可能为它们指定默认值)。否则,第一个事件处理程序将尝试设置其中一个,然后读取它们(此时一个将是未声明的,您仍然会得到一个引用错误。)