Uncaught Typeerror,无法读取属性' 1'未定义的

时间:2016-02-04 15:42:56

标签: javascript jquery

我一直在为课堂做一些编码,但在为交通灯系统编码时遇到了问题。这是我的代码,错误显然是在21和22左右,是一个' Uncaught Typeerror'。你能告诉我一些提示吗?

<html>
<body>
    <script>
        var trafficlights [ "red.png", "orange.png", "green.png"];
        var index = 0;

        function traffic() { // this part is tricky
            index = index + 1;
            if (index == index.length) 
                index = 0;

            var image = document.getElementById('light')[0];
            image.src = trafficlights[index].value = data;
        }
    </script>

    <img id="light" src="red.png" style="width:250px;height:250px;">
    <button type="button" onclick= "traffic()">click to change lights</button>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

这里有一些语法错误:

var trafficlights [ "red.png", "orange.png", "green.png"];

应该是

var trafficlights = ["red.png", "orange.png", "green.png"];
                 ^^^

在这里:

if (index == index.length)

在数字上没有定义length,将数字与其长度&#34;进行比较也没有意义,但我认为你的意思这样做:

if (index == trafficlights.length)
             ^^^^^^^^^^^^^

同样在这里:

var image = document.getElementById('light')[0];

document.getElementById返回单个元素;不是一个数组。所以看起来应该是这样的:

var image = document.getElementById('light');

最后在这里:

image.src = trafficlights[index].value = data;

什么是data?我认为你不需要它,当你引用一个数组值时,你只需要调用这个元素:

image.src = trafficlights[index];