18

鉴于此 HTML:

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

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

$('.OpenIdSelector')

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

4

1 回答 1

31

如果浏览器支持,JQuery 的类选择器会使用新的 javascript 方法getElementsByClassName 。此方法在 quirks 模式页面上不区分大小写,在非 quirks 模式(又名标准兼容)页面上区分大小写。当然,情况不同通常很明显,但是当文本卡在一个又长又复杂的选择器中间时,就很难看到了。显然,标准和怪癖之间有很多区分大小写的差异需要注意。

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

于 2010-04-05T18:00:39.443 回答