如何在循环内定义JavaScript变量,然后在外部调用它(范围)

时间:2011-08-05 17:53:39

标签: php javascript html scope

我似乎无法将变量report1或report2变为全局范围,我知道这个问题看起来非常基本,但我似乎无法找到答案。

我必须在numClicks == 1时定义变量report1,然后在numClicks == 2时报告2。但是,只要numClicks发生变化,JavaScript就会忘记变量,这是可以理解的。但是,我似乎无法扩大变量的范围。我知道对于PHP,你可以做一些像return $variable这样的东西来使它成为全局的,但是在JavaScript中没有任何东西真正起作用。

              <?
                "<img  height =\"16\"  src = \"images/stapler.png\"  
                onclick=\"

                    numClicks++;
                if(numClicks == 1){
                    var report1 = '".$reports[$i]."';
                }
                if(numClicks == 2){
                    var report2 = '".$reports[$i]."';
                }
                return confirm(report1);

                \">\n";?>

执行脚本时,在第三次单击时,它将返回undefined

3 个答案:

答案 0 :(得分:3)

每当您使用var语法时,都要重新声明变量。

您需要在全局范围内定义函数之外的var report1; var report2;;在你的函数中,只需做一个简单的赋值(即report2 = ...;

答案 1 :(得分:1)

使用“var”将使变量本地化为范围。通过消除该关键字,它将是全球性的。

(过度简化,但这是基本技巧。)

答案 2 :(得分:1)

要为变量赋予全局范围,只需省略“var”关键字:

 report1 = '".$reports[$i]."';