我正在瀏覽有關事件處理程序的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