好的,伙计们。我不确定为什么这不起作用。老师给我们举了一个例子,据我所知,除了函数和变量名之外,一切都是一样的...使用外部JavaScript文件,Dreamweaver说没有语法错误或其他任何类型的调试器Firefox说TypeError: document.getElementById(...)[0] is undefined...
,我不确定为什么,但这里是我的代码:
的JavaScript :
var caveboyanim = new Array(6);
var curCaveBoy = 0;
for (var i = 0; i < 6; ++i) {
caveboyanim[i] = new Image();
caveboyanim[i].src = "images/caveboy" + i + ".png";
}
function caveboyanimation() {
if (curCaveBoy == 5)
curCaveBoy = 0;
else ++curCaveBoy;
document.getElementById("caveboy")[0].src = caveboyanim[curCaveBoy].src;
}
HTML :
<body onLoad="setInterval('caveboyanimation()', 1000);">
<img src="images/caveboy0.png" id="caveboy" alt="Image of a cave boy">
</body>
答案 0 :(得分:4)
从
中删除[0]
document.getElementById("caveboy")[0].src = caveboyanim[curCaveBoy].src;
索引0与jQuery对象一起使用以获取“真实”文档元素。但是你没有在这里使用JQuery,所以不需要它。
答案 1 :(得分:3)
document.getElementById()
的返回不是数组。使用:
document.getElementById("caveboy")
答案 2 :(得分:1)
它不会返回数组,因此您无法执行[0]
。 https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById
顺便说一句,看看jQuery。
答案 3 :(得分:0)
在原生javascript中:
document.getElementById("caveboy").src = caveboyanim[curCaveBoy].src;
在jQuery中你可以这样做以获得真正的DOM对象:
$("#caveboy")[0].src = caveboyanim[curCaveBoy].src;
document.getElementById("caveboy")
与$("#caveboy")[0]