2015-11-04 11 views
4

我不明白我的代码有什么问题。在这种情况下,if似乎不起作用。当人们点击按钮时,我希望图像改变。有人可以帮我吗?`if`无法检查<img>的值src

<body> 

<div> 
    <img id="en_garde" src="gifattaque/gif1.png"> 
</div> 
<br> 
<button onclick=attaque_animation() type="button">Attaque</button> 


<script> 
    function attaque_animation() { 
     if (document.getElementById("en_garde").src=="gifattaque/gif1.png") { 
      document.getElementById("en_garde").src="gifattaque/gif2.png"; 

     } 


    }; 
</script> 
</body> 
</html> 
+0

是否当你引用的属性值,它的工作? ('onclick =“attaque ...()”') – Shomz

+1

尝试'console.log(document.getElementById(“en_garde”).src)''看看'.src'属性解析为什么 – Bergi

+0

你可能会错过位置“主机名”和“协议”即图像的绝对URL(http://yourdomain.com/file/gifattaque/gif1.png)。所以尝试将它添加到图像路径,然后进行比较。 –

回答

5

src属性将被扩大到图像源(包括http://...),因此将不是你要找的值完全匹配。

你最好检查房子的年底

if (document.getElementById("en_garde").src.match(/gifattaque\/gif1\.png$/)) 
    document.getElementById("en_garde").src = "gifattaque/gif2.png"; 
0

选择,你可以使用元素:

document.querySelector('[src$="gif1.png"]') 

它将检查SRC ATTR与“GIF1结束巴纽”。

var el = document.querySelector('[src$="gif1.png"]'); 
 
    
 
if (el) 
 
el.src="gifattaque/gif2.png"; 
 

 
console.log(el)