Simon.js:Uncaught TypeError:无法读取属性' style'为null

时间:2016-07-26 18:50:28

标签: javascript html

我知道你可能会发现这个重复,但对我而言,它并没有解决任何问题。我正在像节日项目那样在Simon计划中工作,而且我在使用此JavaScript代码的第41行时遇到了问题。问题是在HTML文件中,ids'存在,但也变得无效':

var pccolor = [];
var usercolor = [];

function SimonStart() {

    document.getElementById("start").style.opacity = .3;

MakeColors();
}

function MakeColors() {

    var colors = [1, 2, 3, 4, 6, 7, 8, 9];
    var randcolor = colors[Math.floor(Math.random() * colors.length)];
    pccolor.push(randcolor);
    LightColor(randcolor, 1000);

}

var randcolor;
var s;

function LightUp() {

    LightColor(pccolor[s]);
    s++;

    if (s < pccolor.length) {

        setTimeout(function () {
            LightUp();

        }, 500);

    }
}

function LightColor(color, TimeOut) {

    var TimeOut = 1000;
    document.getElementById("c" + color).style.opacity = "1"; //doesn't work!
    setTimeout(function () {

        document.getElementById("c" + color).style.opacity = ".3";

    }, TimeOut);

}

function Button(OnClick) {

    LightColor(OnClick);
    usercolor.push(OnClick);
    var i = usercolor.length - 1;
    if (pccolor[i] != usercolor[i]) {

        setTimeout(function () { alert("You lose!"); }, 300);
        pccolor = [];
        usercolor = [];

    } else if (pccolor.length == usercolor.length) {

        usercolor = [];
        pccolor.push(randcolor);
        s = 0;
        setTimeout(function () {

           LightUp();
        }, 500);

    }
}

这是.js文件结束的地方,这个是HTML文件:

<!DOCTYPE html>
<html>
<head>
...

<script type="text/javascript" src="Simon.js"></script>

<link rel="stylesheet" type="text/css" href="Simon.css">

</head>

<body>
    <div class="centerDiv"> 
        <div class="negro">
            <div class="color" id="c1" onclick="Button (1);"> </div>
            <div class="color" id="c2" onclick="Button (2);"> </div>
            <div class="color" id="c3" onclick="Button (3);"> </div>
        </div>
        <div class="negro">
            <div class="color" id="c4" onclick="Button (4);"> </div>
            <div class="color" id="start" onclick="SimonStart ();"></div>
            <div class="color" id="c6" onclick="Button (6);"> </div>
        </div>
        <div class="negro">
            <div class="color" id="c7" onclick="Button (7);"> </div>
            <div class="color" id="c8" onclick="Button (8);"> </div>
            <div class="color" id="c9" onclick="Button (9);"> </div>
            </div>
    </div>

</body>
</html>

有人可以帮我吗???

1 个答案:

答案 0 :(得分:-1)

将任何脚本标记放在HTML文件的末尾。

您的代码基本上是在加载DOM之前执行的,因此对于您的JavaScript程序,没有HTML可以处理。