在DOM中节点ID是否敏感?

Jos*_*son 23 html dom

这个HTML有效吗?或者id'a'与id'A'相同?

<div id="a">alpha</div>
<div id="A">Alpha</div>
Run Code Online (Sandbox Code Playgroud)

not*_*oop 29

是.它区分大小写.属性值始终区分大小写.不同的浏览器似乎在做不同的事情.

document.getElementById浏览器的处理方式不同:

  1. Mozilla执行区分大小写的搜索.

  2. Internet Explorer:IE 8及更高版本执行区分大小写的搜索,而IE 7及更早版本执行不区分大小写的搜索.

  • 更新 – 2019 年:所有现代浏览器中的 ID 均区分大小写(“ABC”!=“abc”);测试:Mozilla Firefox 64、Google Chrome 71、Internet Explorer 11、Microsoft Edge (Chakra) 41 和 Opera 57。 (2认同)

Mic*_*ris 15

这里有一点澄清,因为上述所有答案都只是部分正确.在DOM和Java Script的上下文中,ID是区分大小写的.在CSS中它们不是,因为CSS完全不区分大小写.

http://www.w3.org/TR/css3-selectors/#casesens

所有选择器语法在ASCII范围内不区分大小写(即[az]和[AZ]是等效的),但不受选择器控制的部分除外.选择器中文档语言元素名称,属性名称和属性值的区分大小写取决于文档语言.例如,在HTML中,元素名称不区分大小写,但在XML中,它们区分大小写.名称空间前缀的区分大小写在[CSS3NAMESPACE]中定义.

因此,在不同的情况下拥有两个id是个坏主意,因为你无法通过id独立地设置它们.

  • @xji 一种可能的用例是随机生成 Id 以避免冲突。能够使用大写和小写字母可以减少长度。 (2认同)