0

我在位于头部的脚本中声明全局变量:

var numMonsters;

然后我有人用调用js函数的表单设置了div,它也位于头部,我在那里分配了这个var:

 numMonsters = parseInt(document.getElementById("monsters").value , 10);

这是该设置 div 的一个元素。

后来我用显示属性替换了div:none/block

新的 div 包含我的 js 游戏,我想使用那个全局 var 的值,但它甚至不能忍受简单的条件语句,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;
        }
    }
}

如果我只考虑 i、j 坐标然后将其设置为 true,则此 var 将获得 {0,1,2,3} 值之一显示出它的良好价值。这让我发疯,我做错了什么?!我也对其他 var 采用相同的方法,它们似乎工作正常。谢谢

4

1 回答 1

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”元素。

于 2013-05-14T23:51:46.607 回答