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

我有一个jQuery脚本,在Chrome 11和Firefox 4中运行得非常好,但在IE8中它似乎被打破了。 它似乎与使用jQuery parents()函数和选择器有关。 在IE8中运行时,它不会返回任何元素。

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

谁能告诉我这里会发生什么?

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

顶级元素必须是部分吗? 您似乎遇到了IE8中缺乏对HTML5的支持限制您的区域之一。 如果将节更改为div,则代码将按原样运行。

浏览器中的部分支持。

看看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。