JQuery类选择器像$(.someClass)是大小写敏感的吗?

18
给定以下 HTML 代码:
<div class="OpenIDSelector">some text</div>
为什么这个 JQuery 选择器在某些浏览器和页面上匹配成功,而在其他情况下却不行呢?

为什么这个 JQuery 选择器在某些浏览器和页面上匹配成功,而在其他情况下却不行呢?

$('.OpenIdSelector')

注意:我遇到了这个问题并自己解决了,但它很烦人,而且我在StackOverflow上没有找到相应的解决方案,所以我将其发布为一个问答对,以防其他人浪费像我一样的一小时。


是的,它们是区分大小写的,但有时浏览器不会。 - spielersun
1个回答

31
JQuery的class选择器会使用新的JavaScript方法getElementsByClassName,如果浏览器支持它。在quirks模式下,此方法不区分大小写,在非quirks模式(即符合标准的)页面上区分大小写。通常情况下,很明显这些案例是不同的,但当文本被粘贴到一个长而复杂的选择器中间时,很难看出来。显然,在标准和quirks之间有许多区分大小写的差异需要注意。
故事的寓意是:匹配HTML中所有内容的大小写(元素名称、CSS类等),因为您永远不知道浏览器、标准或库的更改可能使您对大小写不敏感的假设失效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接