我似乎无法使变量report1或report2具有全局作用域,我知道这个问题似乎很基本,但是我似乎找不到答案。
我必须在numClicks == 1
时定义变量report1,然后在numClicks == 2
时定义report2。但是JavaScript会在numClicks更改后立即忘记变量,这是可以理解的。但是,我似乎无法扩大变量的范围。我知道对于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
。 最佳答案
每当使用var
语法时,就在重新声明该变量。
您需要在全局范围内的函数之外定义var report1; var report2;
;在您的函数中,只需执行简单的分配(即report2 = ...;
)