我在剧本中声明全局变量:
var numMonsters;
然后我有一个设置div与表单调用js函数也位于头部,并在那里我分配这个var:
numMonsters = parseInt(document.getElementById("monsters").value , 10);
这是设置div的一个元素。
稍后我用显示属性替换div:none / block
新的div包含我的js游戏,我想使用该全局变量的值,但即使是简单的条件语句也不会, chrome调试器显示正确的值,似乎已定义,但实际上并非如此:
board = new Array();
for (var i = 0; i < 10; i++) {
board[i] = new Array();
for (var j = 0; j < 10; j++) {
board[i][j] = new Array();
if ((i == 0) && (j == 0) && (numMonsters > 0)) {
board[i][j][1] = true;
board[i][j][2] = "red";
}
else if ((i == 9) && (j == 0) && (numMonsters > 1)) {
board[i][j][1] = true;
board[i][j][2] = "blue";
}
else if ((i == 9) && (j == 9) && (numMonsters > 2)) {
board[i][j][1] = true;
board[i][j][2] = "yellow";
}
else {
board[i][j][1] = false;
}
}
}
此var获取{0,1,2,3}值之一 如果我只考虑i,j坐标,然后将其设置为真正的工作 所以它的功能是numMonsters,正如我所提到的,chrome调试器显示出良好的价值。它让我疯狂,我做错了什么?!我也和其他变量做同样的方法,它们似乎工作正常。感谢
答案 0 :(得分:2)
这工作得很好。您的代码中可能还有其他问题导致问题。你能发一些周围的代码吗?
<强> HTML 强>
Monsters: <input id="monsters" type="text" value="10"/>
<强>的Javascript 强>
var numMonsters = parseInt(document.getElementById("monsters").value, 10);
if (numMonsters > 0) {
alert("Monsters win! Variable is a " + typeof numMonsters);
} else {
alert("Fail.");
}
编辑:您的代码不起作用,因为在您尝试引用它时,DOM中不存在“monsters”元素。