我一直在尝试使用javascript来更改我制作的网页上的图片。到目前为止,当我点击原始图像时,我的代码根本不做任何事情。这是我在HTML文档中首次使用JS进行的实验,所以我可以简单地了解一下如何使用它。
<h1>heading name</h1>
<div>
<img alt="alt text"title='hover over text'id='chango'src="images/rsz_josh.jpg"onclick="changeImage()"/>
<script language="javascript">
var changeImage = function(){
img1="images/rsz_josh.jpg";
img2="images/rsz_josh2.jpg";
img3="images/rsz_josh3.jpg";
switch(document.getElementById('chango').src){
case img1:
document.getElementById("chango").src=img2;
break;
case img2:
document.getElementById("chango").src=img3;
break;
default:
document.getElementById("chango").src=img1;
break;
};
};
</script>
</div>
答案 0 :(得分:3)
原因是document.getElementById('chango').src
返回图像的绝对URL,而不是相对的URL。因此,你的案例陈述都不匹配。
解决这个问题的想法是在斜杠上拆分URL,只是比较没有任何路径的文件名。
编辑:一种稍微简单的方法是使用JavaScript的indexOf来查看URL是否包含字符串。这假设没有图像名称是其他图像名称的子串。
var changeImage = function(){
img1 = "rsz_josh.jpg";
img2 = "rsz_josh2.jpg";
img3 = "rsz_josh3.jpg";
console.log(document.getElementById('chango').src);
imgUrl = document.getElementById('chango').src
if (imgUrl.indexOf(img1) != -1) {
document.getElementById("chango").src = 'images/' + img2;
}
else if (imgUrl.indexOf(img2) != -1) {
document.getElementById("chango").src = 'images/' + img3;
}
else {
document.getElementById("chango").src = 'images/' + img1;
}