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">
<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>

我无法弄清楚不起作用的代码中的错误是什么。请推荐我。

最佳答案

这是一个时间问题。

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

由于在您尝试读取它们时尚未设置它们,因此您会收到错误。

你永远不会再尝试阅读它们。

您必须先设置它们,然后才能读取它们。

<小时/>

将用于测试变量值的逻辑移至更改变量的事件处理程序内。

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

关于javascript - 在这种情况下如何访问javascript函数内的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30893929/

相关文章:

javascript - 当数据来自 API 时如何设置选定的特定值

javascript - 如何给网页添加背景音乐?

javascript - 标签的属性在 Angular Directive(指令)中不起作用?

javascript - 如何在 JavaScript 中转换文档数组中的字典?

javascript - ASP.NET MVC Controller 方法从 jQuery 接收空对象

javascript - 在数组中查找跨度元素的索引时要搜索什么?

javascript - Expressjs bodyParser 和连接表单

javascript - 我想用表体数据滚动固定表头?

javascript - HTTP header 在 $.AJAX 调用中不起作用

javascript排序数组