我正在访问 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/