Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试将变量设置为0,并在每次执行onclick函数时增加它_Javascript_Variables_Increment - Fatal编程技术网

Javascript 尝试将变量设置为0,并在每次执行onclick函数时增加它

Javascript 尝试将变量设置为0,并在每次执行onclick函数时增加它,javascript,variables,increment,Javascript,Variables,Increment,我对javascript还不熟悉,但它就在这里。我正在处理这个页面,我希望它增加每个问题的变量。我不明白为什么它不能正常工作,我已经试了好几个小时了 这是因为您已经声明了局部变量。您需要声明全局变量 var sec1=0; var sec2=0; var sec3=0; function clearVar(){ sec1=0; sec2=0; sec3=0; } function sec1Var(){ sec1++; alert(sec1); }

我对javascript还不熟悉,但它就在这里。我正在处理这个页面,我希望它增加每个问题的变量。我不明白为什么它不能正常工作,我已经试了好几个小时了


这是因为您已经声明了局部变量。您需要声明全局变量

var sec1=0;
var sec2=0;
var sec3=0;

function clearVar(){
    sec1=0;
    sec2=0;
    sec3=0;
}

function sec1Var(){
    sec1++;
    alert(sec1);
}
控制台显示:

未捕获引用错误:未定义sec1

您必须实际声明
sec1
等:

var sec1 = 0,
    sec2 = 0,
    sec3 = 0;

function clearVar(){
    sec1 = 0; // update the declared variable to 0; don't declare it here
              // because it's then only accessible within this function

    // ... rest of code ...

JavaScript中的变量的作用域是函数。基本上,这意味着您不能从函数外部访问函数内声明的变量。因此,如果您在
clearVar
中声明变量,您将无法从其他任何地方访问它们。只需将它们放在函数声明之前。

计数器变量必须有一个作用域,允许它们在一次调用到下一次调用之间存活,以便保持它们的值。您使用的是在每次调用函数时销毁和重新创建的局部变量

下面是一个cntr在每次按下按钮时增加的工作示例:

点击我
0 //全局变量 var-cntr=0; document.getElementById(“test”).onclick=function(){ cntr++; document.getElementById(“输出”).innerHTML=cntr; };
我要补充的是,我拥有“document.getElementById('sec1text').innerHTML=sec1;”的唯一原因是为了测试我的代码。我知道它必须是简单的,感谢帮助解决了我的问题。感谢帮助,我的问题现在得到了解决。感谢你解释了问题,而不仅仅是给出答案。
var sec1 = 0,
    sec2 = 0,
    sec3 = 0;

function clearVar(){
    sec1 = 0; // update the declared variable to 0; don't declare it here
              // because it's then only accessible within this function

    // ... rest of code ...
<button id="test">Click Me</button><br>
<div id="output">0</div>

// global variable
var cntr = 0;
document.getElementById("test").onclick = function() {
    cntr++;
    document.getElementById("output").innerHTML = cntr;
};