我正在浏览有关事件处理程序的JavaScript课程,同时这样做我开始非常基本,它是getElementById()
。以下是我的HTML和JavaScript代码。下面的代码也有图片标签,但我是新用户,所以他们不允许我以完全的方式发布它们。所以请考虑src
标签完全投诉。getElementById()总是显示NULL状态
<div class="considerVisiting">
<img src="images/bq-twitter" id="mainImage" alt="BeQRious Twitter">
</div>
,这里是JavaScript代码:
var myImage = document.getElementById("mainImage");
var imageArray = [images/1-btn, images/download-as-you-like];
var imageIndex = 0;
function changeImage() {
myImage.setAttribute("src",imageArray[imageIndex]);
imageIndex++;
if (imageIndex >= imageArray.length) {
imageIndex=0;
}
}
setInterval(changeImage, 5000);
此代码将改变mainImage图片每5秒。但我面临的问题是,当我在Mozilla运行使用Firebug这个脚本,它说:
> Error : myImage is Null
并没有什么关于脚本发生。
在执行JavaScript之前,该元素是否存在于DOM *中? (请记住,JavaScript会在浏览器遇到它时立即运行),是否将它包装在一个`document.ready`事件处理程序中?或者尝试将JS放在页面底部的`script`块中?所以它在DOM放在一起后执行? – 2011-12-14 23:28:03
你确定你的`img`元素(在你的soruce中)属性是`id`吗? Internet Explorer有一个错误,它会匹配名称而不是ID,但其他浏览器会正确投诉。 – scunliffe 2011-12-14 23:29:15