2012-08-17 154 views
1

有一个遗留网站,我正在处理,并且当点击某个链接时我需要换出徽标图像。这适用于Firefox和Chrome,但不适用于IE。jQuery选择器在IE中不工作

要添加到问题的复杂性,包含脚本的页面嵌套3个框架集内。链接与脚本位于同一个框架集中,但徽标位于顶部框架中。

$('a.reset-logo').click(function() { 
    var img = '../images/img1.gif'; 

    var $img = $('img.header-image', window.parent.top.frames[0].document); 

    //testing 
    //shows the correct src in chrome/firefox -- undefined in IE  
    //alert($img.attr('src')); 

    $img.attr('src', img); 
}); 

是的,我必须保持帧的使用。这不是重写,只是维护问题。我一直在我的头上撞墙,时间太长了。

我试图改变的背景下window.top.frames [0] .document同样的结果,在一些其他之中。问题在于选择者,我似乎无法确定它是什么。

+0

什么版本的IE? – Kpower 2012-08-17 15:50:29

+0

这只对IE 8.0+以上版本 – jsmith 2012-08-17 15:51:26

回答

0

我能够得到它的工作通过将我的脚本更改为以下内容:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('a.reset-logo').click(function (e) { 
      var theFrame = window.parent.top.frames[0].document; 
      var theSrc = '../images/img1.jpg'; 

      $(theFrame).find('img.header-image').attr('src', theSrc); 
     }); 
    }); 
</script> 
0

请问http://jsfiddle.net/TJVuY/4/有帮助吗?我拿走了window.parent.top.frames [0] .document-它不需要,因为它是对文档本身的侵蚀,现在它可以在IE 8中工作。

+0

这没有任何帮助。脚本所在的文档位于嵌套框架集中。需要更新的元素从触发事件的文档起上升两个级别。 – jsmith 2012-08-20 13:21:38