像$(。someClass)这样的JQuery类选择器区分大小写?

时间:2010-04-05 18:00:17

标签: javascript jquery html standards quirks-mode

鉴于此HTML:

<div class="OpenIDSelector">some text</div>

为什么这个JQuery选择器在某些浏览器和某些页面上匹配它,而在其他页面上却不匹配?

$('.OpenIdSelector')

注意:我遇到了这个问题并且自己解决了,但它很烦人,我在StackOverflow上找不到它,所以我发布它作为Q&amp; A对,所以其他人赢了'像我一样浪费一个小时。

1 个答案:

答案 0 :(得分:31)

如果浏览器支持,则JQuery的class selector使用新的javascript方法getElementsByClassName。此方法在quirks-mode页面上不区分大小写,在非quirksmode(也称为标准兼容)页面上区分大小写。当然,通常很明显案例是不同的,但是当文本卡在长而复杂的选择器中间时,很难看到。显然,标准和怪癖之间存在许多区分大小写的差异需要注意。

故事的道德:在HTML(元素名称,CSS类等)中匹配所有的情况,因为您永远不知道何时对浏览器或标准或库的更改可能会使您的假设无效关于不区分大小写。