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

时间:2014-02-21 01:25:05

标签: javascript

好的,伙计们。我不确定为什么这不起作用。老师给我们举了一个例子,据我所知,除了函数和变量名之外,一切都是一样的...使用外部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>

4 个答案:

答案 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]

相同