为什么jQuery的父/最近(选择器)函数在IE8中表现不同?

时间:2011-05-10 14:40:55

标签: jquery internet-explorer-8 jquery-selectors parents

我有一个jQuery脚本在Chrome 11和Firefox 4中完美运行,但在IE8中似乎已经破解了。它似乎与jQuery parents()函数与选择器的使用有关。在IE8中运行时,它不会返回任何元素。

我已经创建了一个问题的简化版本,它显示了相同的症状over at jsFiddle,以防止这里有大量代码。

有人能告诉我这里会发生什么吗?

更新:使用closest()似乎会导致类似行为,但在这种情况下似乎更合适。

2 个答案:

答案 0 :(得分:2)

顶级元素必须是部分吗?看起来你正在遇到IE8中缺乏对HTML5的支持限制你的一个领域。如果将节更改为div,则代码将按原样运行。

Section support in browsers.

答案 1 :(得分:1)

查看jsFiddle中的选择器,如果我摆脱了选择器的第二部分,我能够在IE8中正常工作。

$(document).ready( function(){
     $('a[data-detailed]').live('click', function(event){
        var a = $(this);
        var key= a.attr('data-detailed');

        $(".detailedOverview[data-detailed="+key+"]").slideToggle('fast');
        $(".masterOverview").slideToggle('fast');
        event.preventDefault();   
    });

    $('a[href=#back]').live('click', function(event){
        var a = $(this);
        var detailedOverview= a.parents("[data-detailed]");

        $(".masterOverview").slideToggle('fast');         
        detailedOverview.slideToggle('fast');

        event.preventDefault();   
    });
});

在每个选择器中,选择器后面都有一个“,fileparent”。没有必要像这样指定父级,并且摆脱它的工作原理。事实上,你可以一起摆脱fileparent。