2017-02-27 36 views
0

我想在加載頁面後更改圖像。我寫了一個Java腳本文件,但我不知道我的錯誤。我也不在控制檯得到一個錯誤......更改圖像onLoad() - 我的失敗在哪裏?

的JavaScript:

function changeImage(){ 
    changeImage = document.getElementsByClass("carousel-indicators"); 
    changeImage = changeImage.getElementsByTagName("img")[0].src; 

    actualImage = document.getElementsByClass("item active"); 
    actualImage = actualImage.getElementsByClass("img-wrapper-inner"); 
    actualImage.getElementsByTagName("img").src = changeImage; 
} 

我還調用函數附:

<img onload="changeImage()"> 

問候和謝謝你!

+0

一方面,它的'document.getElementsByClassName',不'getElementsByClass' – qxz

+0

你是什麼意思? – Jan

+1

我猜你的'changeImage'函數沒有被調用。如果你在其中放置了一個'console.log',它是否顯示在控制檯中? – qxz

回答

2

由於qxz指出你可能正在尋找Document.getElementsByClassName方法。

此外,使用與您的方法名稱相同的變量名稱而不使用var來聲明新變量可能會導致意外結果。由於JavaScript在覆蓋範圍方面沒有問題。最後但並非最不重要,getElementsByClassName返回數組。沒有一個HTMLElement。您應該從數組中檢索一個元素進行操作。而不是試圖改變數組的src字段。

所以結合這些項目會給你像一些代碼:

function handleImageLoad() { 
 
    var loadedImage = document.getElementsByClassName('loadableImage')[0].src; 
 
    document 
 
     .getElementsByClassName('loadState')[0] 
 
     .innerHTML = 'Loaded image: ' + loadedImage; 
 
}
<img class="loadableImage" src="http://lorempixel.com/200/200" onload="handleImageLoad()" /> 
 
<p class="loadState">Loading...</p>

+0

我改變了它,看看我上面的鏈接,但它仍然沒有工作......問題在哪裏... – Jan

+0

對不起,但我不打算潛入您的網站來調試您的代碼。嘗試使用更新後的代碼示例向原始問題添加新的部分。甚至更好,創建一個像我的答案中的片段。 –

+0

我修好了! :d。 – Jan