IE7上的jQuery#id.classname选择器

Rob*_*son 5 jquery jquery-selectors internet-explorer-7

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

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

alert( jQuery('#course-contents.course-sidebar .folder').length );
Run Code Online (Sandbox Code Playgroud)

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

alert( jQuery('.course-sidebar .folder').length );
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Pet*_*ter 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


kap*_*apa 2

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

对于解决方法,您可以使用

jQuery('.course-sidebar')
    .filter('#course-contents')
    .find('.folder')
    .length
Run Code Online (Sandbox Code Playgroud)

或(使用context,可读性较差)

jQuery('.folder', jQuery('.course-sidebar').filter('#course-contents')).length
Run Code Online (Sandbox Code Playgroud)