Javascript 艾元';t型拨动元件

Javascript 艾元';t型拨动元件,javascript,internet-explorer,Javascript,Internet Explorer,我的页面上有一个JavaScript来切换div和在两个图像之间切换 <script type="text/javascript"> function toggleArchiv() { document.getElementById('cat').toggle(); var image = document.getElementById('arrow'); if (image.src == 'bullet_arrow_down.png') { image.

我的页面上有一个JavaScript来切换div和在两个图像之间切换

<script type="text/javascript">
 function toggleArchiv() {
  document.getElementById('cat').toggle();
  var image = document.getElementById('arrow');
  if (image.src == 'bullet_arrow_down.png')
   {
    image.src = 'bullet_arrow_up.png';
   }
   else
   {
    image.src = 'bullet_arrow_down.png';
   }
  }
</script>

因此它不会切换div,也不会切换图像。怎么办?

我认为问题在于对HtmleElement而不是jQuery对象调用toggle()。您应该使用jQuery选择器而不是getElementById(),如下所示:

$('#cat').toggle();

在我看来,您正在使用PrototypeJS库。该库将向DOM元素添加方法,在本例中,它将添加
HTMLElement.prototype.toggle
。DOM原型仅在IE8及更高版本中受支持,并且必须以标准模式呈现。为了使其在所有浏览器中工作,请使用
$()
方法,而不是
getElementById()


document.getElementById('cat')
(元素)没有方法,
切换
。你自己在原型中添加这个方法吗?我不知道。但为什么它在FF中工作?可能是某个使用过的JS库添加了该方法,但为什么IE不明白这一点。。。我将检查IE的旧版本是否允许您访问DOM原型。如果在IE8中以标准模式呈现页面,则可以访问它们。您正在使用哪些库?在任何浏览器中都无法比较
image.src
。当您阅读该属性时,您将返回一个绝对URL,例如
http://www.example.com/img/bullet_arrow_down.png
这将与相对URL不匹配。有趣的是,我实际上使用的是IE8,但它在那里不起作用-因此我甚至没有费心尝试IE7。@Apo:很可能您的文档没有按照IE8标准呈现模式。
$('#cat').toggle();
$('cat').toggle();