我需要在循环之后得到变量的结果,我尝试通过使其成为全局变量来获取其值,但它的值不会改变。这有可能吗?
这是我的代码,我试图得到变量t的值:
var t;
function processSplashbacks() {
var splashbacks = document.worktopForm.splashbacks.value;
for (t = 1; t <= splashbacks; t++){
var splashbackInfo = '<label> Length: </label><input type="text" id="length' + t + '" value="0"/>(cm)<br /><label> Width: </label><input type="text" name="width' + t + '" value="0"/>(cm)<br /><br />';
document.getElementById("splashWidLen").innerHTML += 'Splashback ' + t + ' dimensions<br />' + splashbackInfo;
}
}
function deleteSplashbacks() {
document.getElementById("splashWidLen").innerHTML = "";
}
console.log(t);
谢谢!
答案 0 :(得分:4)
尝试:
<input type="button" value="Add Splashbacks" onClick="processSplashbacks(); console.log(t);"/>
从我看到的情况来看,你只是在一个地方打电话给console.log(t)
。它仅在页面加载时记录,即在用户单击按钮之前。您必须在函数调用后再次调用console.log(t);
。
尽管如此,全局变量可能不是最好的解决方案。您最好使用该函数return t;
,然后记录返回值,如下所示:
<input type="button" value="Add Splashbacks" onClick="console.log(processSplashbacks());"/>
答案 1 :(得分:1)
所以你只是想把变量设置为全局变量?
这应该有效:window.t = t;
把它放在循环中并增加。
我不确定这实际上会有多大用处。您确定要访问循环控制变量吗?
答案 2 :(得分:1)
代码中的4个语句是:
它们都在页面加载时运行,但声明一个函数不会执行它...每当函数执行时,它都将在你的console.log(t)
语句之后。
现在如果你这样写:
onClick="processSplashbacks(); console.log(t);"
然后它应该工作
答案 3 :(得分:1)
定义了该函数,并在函数运行之前将变量记录到控制台。相反,您可以重写函数来定义并返回自己的t,然后onclick处理程序可以将其显示在日志中。