0

当我尝试代码时,键变量显示为“未定义”。我认为它在某种程度上不是全局的,即使我没有把它放在一个函数中。有人知道如何解决这个问题吗?帮助将不胜感激。

<html>
<head>
<script>

var key = Math.floor(Math.random() * 27 + 96);

function lespres(event) {

    var p = 0;
    document.getElementById('pedonummer').innerHTML = "random getal" + key;
    var x = event.which;
    document.getElementById('teest').innerHTML = "KEY PRESSED: " + x;
    if(x == key) {
        var p = p + 1;
        document.getElementById('punten').innerHTML = p + "points";
        var key = Math.floor(Math.random() * 27 + 96);
    }
}

</script>
</head>
</html>
4

2 回答 2

3

您已经使用 声明var了两个名为 的变量key

后面定义<script>的那个在函数内部被后面定义的那个屏蔽了document.getElementById('punten').innerHTML = p + "points";

于 2018-06-16T13:29:16.563 回答
0

你有它双重定义。一个是全局的,另一个是本地的。

您必须var从本地关键字中删除关键字。

<html>
<head>
<script>

var key = Math.floor(Math.random() * 27 + 96);

function lespres(event) {

    var p = 0;
    document.getElementById('pedonummer').innerHTML = "random getal" + key;
    var x = event.which;
    document.getElementById('teest').innerHTML = "KEY PRESSED: " + x;
    if(x == key) {
        var p = p + 1;
        document.getElementById('punten').innerHTML = p + "points";
        key = Math.floor(Math.random() * 27 + 96); // HERE
    }
}

</script>
</head>
</html>
于 2018-06-16T13:29:54.607 回答