我一直在为课堂做一些编码,但在为交通灯系统编码时遇到了问题。这是我的代码,错误显然是在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>
答案 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];