用javascript更改图像源 - 出了什么问题?

时间:2013-05-16 22:02:02

标签: javascript

<IMG onmouseover="document.swap2.src='http://www.grlf.com/pics/png';" id="brewmp" alt=Brew src=changeOSImage() width=26 height=24>


function changeOSImage() {
    var mp_os = "x";

    if (mp_os) == "Brew MP") {
        document.getElementById("brewmp").src = "http://www.greengo-cellular.com/ebay_files/images/features_n_02.png";
    } else {
        document.getElementById("brewmp").src = "http://www.greengo-cellular.com/ebay_files/images/features_02.png";
    }
};

由于某些原因而不是更改网址,网址会在其中显示功能名称(因此无处可去)。我做错了什么?

3 个答案:

答案 0 :(得分:3)

您无法在图像的src属性中指定功能。

尝试将changeOSImage()函数放在文档的onload事件中,或从其他函数中调用它。

答案 1 :(得分:0)

如前所述,图像的src不能是一个函数。另外,我无法在代码中看到document.swap2实际引用的内容。尝试像

这样的东西
  <img id="brewmp" src="http://www.grlf.com/pics/png" />

  <script>
  window.onload = (function(){
         var mp_os = 'x';
         document.getElementById('brewmp').onmouseover = (function(){
              this.src = 'path/to/different/image';
         });
  });
  </script>

我不确定mp_os在你的初始代码中是指什么,因为它被设置为x并且你永远不会改变它,而且它是在你的函数范围内定义的,这意味着在这种情况下它总是'x' 。上面应该为你提供一个很好的起点来添加你的“if”语句,但你应该在函数之外声明var mp_os

答案 2 :(得分:0)

如其他答案中所述,你有一个额外的)在你的if语句中。试试这个:

示例:JsFiddle

JavaScript(在<head></head>内添加):

<script>
var mp_os = '';

function changeImage(){

    if (mp_os == "Brew MP") {
        mp_os = "x";
        document.getElementById("brewmp").src = "http://png-5.findicons.com/files/icons/75/i_like_buttons_3a/512/perspective_button_stop.png";
    } else {
        mp_os = "Brew MP";
        document.getElementById("brewmp").src = "http://icons.iconarchive.com/icons/mazenl77/I-like-buttons-3a/512/Perspective-Button-Go-icon.png";
    }

}
</script>

HTML:

<img onmouseover="changeImage()" onmouseout="changeImage()" id="brewmp" alt="Brew" src="http://png-5.findicons.com/files/icons/75/i_like_buttons_3a/512/perspective_button_stop.png" width="20%">