jQuery选择器仅在IE中不起作用

时间:2012-08-17 15:48:54

标签: jquery internet-explorer selector legacy frameset

我正在处理一个旧网站,我需要在点击某个链接时换出徽标图片。这适用于firefox和chrome,但不适用于IE。

为了增加问题的复杂性,包含脚本的页面嵌套在三个框架集中。该链接与脚本位于同一框架集中,但徽标位于顶部框架中。

$('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,结果与其他一些相同。问题在于选择器,我似乎无法确定它是什么。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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>