Javascript TypeError:document.getElementById(…)[0]未定义

Javascript TypeError:document.getElementById(…)[0]未定义,javascript,Javascript,好的,伙计们。我不知道为什么这不起作用。根据老师给我们的一个例子,据我所知,除了函数和变量名之外,其他一切都是一样的。。。使用外部JavaScript文件,Dreamweaver说没有语法错误或其他类似的错误,但Firefox上的调试器说TypeError:document.getElementById(…)[0]未定义…,我不确定原因,但我的代码如下: JavaScript: var caveboyanim = new Array(6); var curCaveBoy = 0; for (v

好的,伙计们。我不知道为什么这不起作用。根据老师给我们的一个例子,据我所知,除了函数和变量名之外,其他一切都是一样的。。。使用外部JavaScript文件,Dreamweaver说没有语法错误或其他类似的错误,但Firefox上的调试器说
TypeError:document.getElementById(…)[0]未定义…
,我不确定原因,但我的代码如下:

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;
}
<body onLoad="setInterval('caveboyanimation()', 1000);">

<img src="images/caveboy0.png" id="caveboy"  alt="Image of a cave boy">

</body>
var caveboyanim=新数组(6);
var curCaveBoy=0;
对于(变量i=0;i<6;++i){
caveboyanim[i]=新图像();
caveboyanim[i].src=“images/caveboy”+i+“.png”;
}
函数caveboyanimation(){
如果(curCaveBoy==5)
curCaveBoy=0;
else++curCaveBoy;
document.getElementById(“caveboy”)[0].src=caveboyanim[curCaveBoy].src;
}
HTML

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;
}
<body onLoad="setInterval('caveboyanimation()', 1000);">

<img src="images/caveboy0.png" id="caveboy"  alt="Image of a cave boy">

</body>

从以下位置删除
[0]

document.getElementById("caveboy")[0].src = caveboyanim[curCaveBoy].src;

索引0与jQuery对象一起使用,以获取“真实”文档元素。但是这里没有使用JQuery,因此不需要它。

返回的
文档。getElementById()
不是数组。使用:

document.getElementById("caveboy")

它没有返回数组,因此您无法执行
[0]

顺便说一句,看看本地javascript中的jQuery.

document.getElementById("caveboy").src = caveboyanim[curCaveBoy].src;
在jQuery中,您可以这样做以获得真正的DOM对象:

$("#caveboy")[0].src = caveboyanim[curCaveBoy].src;

document.getElementById(“caveboy”)
$(“#caveboy”)[0]相同

此jQuery如何相关?他的老师显然不教jQuery。顺便说一下,看看Haskell。@JanTuroň我没有说它与jQuery有关,这只是一个提示。有了jQuery,这会容易得多。但是我回答了他的问题。有了这位老师,仅仅学习JavaScript已经够难的了。我不会教我们任何东西,我会等待JQuery。。。lol@user3335267相信我,jQuery让一切变得简单多了!它只是一个库,不是一种完全不同的语言。更详细地说,它被称为
getElementById
,而不是
getElementsById
(注意它是单数而不是复数),这与例如
getElementsByTagName
不同。这是有道理的,因为一个页面上只能有一个ID。TY!!!我真的很沮丧:)现在我可以回去建立我的赌场主页了:)