javascript - 无法在条件语句中比较int类型的v​​ar

时间:2013-05-14 23:44:11

标签: javascript compare conditional

我在剧本中声明全局变量:

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调试器显示出良好的价值。它让我疯狂,我做错了什么?!我也和其他变量做同样的方法,它们似乎工作正常。感谢

1 个答案:

答案 0 :(得分:2)

这工作得很好。您的代码中可能还有其他问题导致问题。你能发一些周围的代码吗?

Fiddle

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