IE7上的jQuery#id.classname选择器

时间:2011-04-08 15:29:50

标签: jquery jquery-selectors internet-explorer-7

所以说实话,我甚至不知道为了获得合理针对性的搜索结果我会搜索哪些术语,所以我想我希望能在这里做出快速反应。我尝试过的搜索(包括SO的相关问题)没有提到这个特殊问题。

我的武器库中的每个浏览器都了解以下jQuery选择器并提醒正确的长度(2):

alert( jQuery('#course-contents.course-sidebar .folder').length );

但不是IE7。它告诉我有零。另一方面,这个:

alert( jQuery('.course-sidebar .folder').length );

两个地方给我两个结果。什么是IE7适合的组合?这两个组件在某些地方是必需的,所以我不想只是改变它。如果我的语法不稳定,我想知道原因。

感谢。

2 个答案:

答案 0 :(得分:6)

第一个on当然是一个更严格的选择器:只考虑ID标签下的类,IE7(或IE6)不支持这种情况。

第二个选择器是关于班级课程栏的所有孩子,无论他们出现在哪里。

实际上,IE在#ID.class选择器中存在问题:

http://bytesizecss.com/blog/post/the-idclass-selector-in-ie6

http://csscreator.com/node/26521

http://code.google.com/p/ie7-js/issues/detail?id=29

答案 1 :(得分:2)

这是一个记录在案的IE6 / 7错误(再次......),如@Peter所示。

要获得解决方法,可以使用

jQuery('.course-sidebar')
    .filter('#course-contents')
    .find('.folder')
    .length

或(使用context,不太可读)

jQuery('.folder', jQuery('.course-sidebar').filter('#course-contents')).length