2017-02-27 14 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