2016-01-03 23 views
1

认识我有两个图像:图像源不错误地通过功能

<img id="img1" src="l1.jpg" usemap="#lb" height="400" border="0" width="300"> 
<img src="images.jpg" id="img2"> 

然后,我有一个的JavaScript

function checkImg() { 
    if (document.getElementById('img2').src=="images.jpg") 
    { 
     if (document.getElementById('img1').src=="l1.jpg") 
     { 
      window.alert("hi"); 
     } 
    } else { 
     window.alert("bye"); 
    } 
} 
checkImg(); 

而激活一个按钮:

<button type="button" onclick="checkImg()">Click Me!</button> 

两个图像都有脚本中指定的源,尽管它仍然是a讲'再见'而不是'嗨'。 有什么问题?

+0

问题是'src'属性返回一个绝对URL,而不是你刚刚设置的相对URL。 – adeneo

+0

@adeneo哎呀...应该改变 –

+0

@adeneo [第二篇文章]我如何使用src作为相对URL? –

回答

2

src属性返回一个绝对的URL,如

<img src="image.jpg" id="element" /> 

<script> 

    element.src; // http://stackoverflow.com/image.jpg 

    element.getAttribute('src'); // image.jpg 

</script> 

换句话说东西,你不得不使用getAttribute获得src属性的值,而不是属性,让你绝对的URL

function checkImg() { 

    var img1 = document.getElementById('img1'); 
    var img2 = document.getElementById('img2'); 

    if (img2.getAttribute('src') == "images.jpg") { 

     if (img1.getAttribute('src') == "l1.jpg") { 

      window.alert("hi"); 

     } else { 

      window.alert("bye"); 
     } 
    } 
} 

checkImg(); 
+0

不起作用。点击按钮现在不会做任何事情...... –

+0

由于某种原因,它再次复制代码后仍然有效。谢谢:) –

1

而不是使用的getAttribute功能,使用 hasattribute功能比较。然后你的按钮将工作。

<script> 
     img1 = document.getElementById("img1"); 
     img2 = document.getElementById("img2"); 
     function checkimg() { 
     if (img1.hasAttribute("src")=="img/1.jpg") { 
      if (img2.hasAttribute("src")=="img/2.jpg"){ 
       alert("Hello"); 
      } 
     } 
     else { 
      alert("Bye"); 
     } 
     } 
    </script> 
+0

我不能让你的代码工作:(,并且我已经有一个没有hasAttribute的解决方案。 –