鉴于此 HTML:
<div class="OpenIDSelector">some text</div>
为什么这个 JQuery 选择器在某些浏览器和某些页面上匹配它,而在其他浏览器和页面上不匹配?
$('.OpenIdSelector')
注意:我遇到了这个问题并自己解决了,但这很烦人,而且我还没有在 StackOverflow 上找到它,所以我将它作为问答对发布,这样其他人就不会像我一样浪费一个小时了。
鉴于此 HTML:
<div class="OpenIDSelector">some text</div>
为什么这个 JQuery 选择器在某些浏览器和某些页面上匹配它,而在其他浏览器和页面上不匹配?
$('.OpenIdSelector')
注意:我遇到了这个问题并自己解决了,但这很烦人,而且我还没有在 StackOverflow 上找到它,所以我将它作为问答对发布,这样其他人就不会像我一样浪费一个小时了。
如果浏览器支持,JQuery 的类选择器会使用新的 javascript 方法getElementsByClassName 。此方法在 quirks 模式页面上不区分大小写,在非 quirks 模式(又名标准兼容)页面上区分大小写。当然,情况不同通常很明显,但是当文本卡在一个又长又复杂的选择器中间时,就很难看到了。显然,标准和怪癖之间有很多区分大小写的差异需要注意。
故事的寓意:匹配 HTML 中所有内容(元素名称、CSS 类等)的大小写,因为您永远不知道何时更改浏览器、标准或库可能会使您对不区分大小写的假设无效。