2009-12-31 86 views
0

我发现自己在学习web development。我刚开始阅读关于JavaScript。作为一种语言,我没有任何麻烦,但我遇到了一个恼人的情况:使用javascript交换图像

我只是想尝试我的第一个JavaScript的一个简单的动作:改变<img>的src属性。因此,让我们想象有这样的代码中的index.html:

<html> 
    <head> 
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 

    <script type="text/javascript" language="javascript" charset="utf-8"> 
     function activate(id) 
     { 
     document.images(id).src ="home-on.jpg"; 
     } 

     function deactivate(id) 
     { 
     document.images(id).src ="home-off.jpg"; 
     } 
    </script> 
    </head> 

    <body id="ID"> 
    <img id="home" src="home-off.jpg" 
    onmouseover="activate('home')" 
    onmouseout="deactivate('home')"/> 
    </body> 
</html> 

代码工作完全在谷歌浏览器(换图像当鼠标已经结束,并出)。但我没有与Firefox的运气。任何帮助?建议?

+0

建议:使用css来执行此功能:) – Jason 2009-12-31 23:41:29

回答

6

您正在使用错误的语法来获取图像。

你需要写document.images[id](用方括号[],没有括号()

document.images集合是一个关联数组,这是使用括号索引。
括号用于调用函数;我不知道你的代码为什么在Chrome中工作。

+3

是的,他也可以考虑使用document.getElementById(id)。 – 2009-12-31 22:58:37

+0

好的,谢谢。我不知道document.iamges是一个数组,我实际上认为它是一个函数! 。是的,我是一名程序员,所以我知道通常如何调用函数。 – Fabzter 2009-12-31 23:09:07

+0

你会对这里的一些初学者的平均水平感到惊讶。另外,如果你来自VB,这种区别对你来说将是新的。 – SLaks 2009-12-31 23:16:27

1

SLaks为这个特定问题输入了正确答案。

但是,你会发现在JavaScript中有很多这样的情况下,不正确的语法将在一个浏览器中工作,但不会在下一个。为了确保您在JavaScript中保持跨浏览器兼容性,您可能会发现诸如jQuery之类的库非常方便。它不仅试图确保您的JavaScript代码与所有浏览器兼容,而且还扩展了许多强大的功能。

+0

比你,我已经在考虑使用jQuery,但我想在进入框架之前从头开始。 :-) – Fabzter 2010-01-01 00:45:08