HTML:有效的id属性值?

2284
在创建 HTML 元素的 id 属性时,对于其值有哪些规则?

119
HTML5与之前的版本规范有所不同。我在这里解释了它:http://mathiasbynens.be/notes/html5-id-class - Mathias Bynens
5
我注意到 SharePoint 2010 分配了如下的值 - {8CC7EF38-31D8-4786-8C20-7E6D56E49AE2}-{E60CE5E2-6E64-4350-A884-654B72DA5A53},用于动态生成的 Web 部件中的表格。在其中包含这种 ID 值的页面中,各种受欢迎的浏览器都不会出现错误。然而,通过 JavaScript 处理这样的 ID 值是棘手的 - http://mvark.blogspot.in/2012/07/building-dynamic-jquery-selector-for.html - mvark
4
HTML4和HTML5中对ID值的要求非常不同。以下是HTML5 ID规则的快速完整概述:https://dev59.com/83VD5IYBdhLWcg3wJIEK#31773673 - Michael Benjamin
6
请注意:按照某些答案所说,使用 jQuery 中的句号(“**.**”)会导致很多麻烦。例如,如果使用 <input id="me.name" />,然后调用 $("#me.name").val(),jQuery 将会寻找一个类为 .name<me> 标签,而这并不是我们想要的结果!请谨慎使用。 - Can O' Spam
3
不用,你只需要像文档中所述一样转义特殊字符即可。请查看此在线演示 - Álvaro González
显示剩余2条评论
27个回答

7

在HTML中,ID应该以{A-Z}{a-z}开始。您可以添加数字、句点、连字符、下划线和冒号。

例如:

<span id="testID2"></span>
<span id="test-ID2"></span>
<span id="test_ID2"></span>
<span id="test:ID2"></span>
<span id="test.ID2"></span>

虽然你可以使用冒号 (:) 或者句点 (.) 来创建ID。但是在CSS中使用这些ID作为选择器很困难,特别是当你想要使用伪元素 (:before:after) 时。

同样,在JavaScript中选择这些ID也很困难。因此,许多开发人员首选前四个ID,必要时才会使用最后两个ID。


6

这里的“Walues”指的是值,可以包括:[a-z]、[A-Z]、[0-9]、[* _ : -]。

它用于HTML5…

我们可以给任何标签添加id。


2

帮帮我,我的Javascript出了问题!

大家都说ID不能重复。

最好在每个浏览器中尝试,但不包括FireFox。

<div id="ONE"></div>
<div id="ONE"></div>
<div id="ONE"></div>
<script>
  document.body.append( document.querySelectorAll("#ONE").length , ' DIVs!')
  document.body.append( ' in a ', typeof ONE )
  console.log( ONE ); // a global var !!
</script>

说明

进入21世纪后,微软拥有90%的浏览器市场份额,并实现了从未标准化的浏览器行为:

1. 为每个ID创建全局变量

2. 为重复的ID创建一个数组

所有后来的浏览器供应商都复制了这种行为,否则他们的浏览器将无法支持旧网站。

大约在2015年,Mozilla删除了FireFox中的2.,而1.仍然有效。

所有其他浏览器仍然执行1和2。

我每天都使用它,因为键入ONE而不是document.querySelector("#ONE")可以帮助我更快地进行原型设计;但我不在生产中使用它。


0
大写和小写字母都可以使用。 下划线和破折号也可以使用。 数字也可以使用。 冒号和句点似乎可以使用。 有趣的是,表情符号也可以使用。

0

Html ID

id 属性指定元素的唯一标识符 (ID)。

ID 可以采用任何形式,没有其他限制;特别地,ID 可以仅由数字组成、以数字开头、以下划线开头、仅由标点符号组成等。

元素的唯一标识符可用于多种目的,最常见的是作为使用片段链接到文档特定部分的方式,作为脚本时定位元素的方式,以及作为 CSS 样式化特定元素的方式。


0

创建 HTML 元素的 id 属性有几个规则。

  1. id 属性必须是唯一的。(没有两个元素应该有相同的 id 值)
    例如:

    <h1 id="one">标题一</h1>
    <h1 id="two">标题二</h1>

  2. id 属性必须以字母、下划线(_)或连字符(-)开头。
    例如:

    <li id="one">一</li>
    <li id="_two">二</li>
    <li id="-three">三</li>

  3. id 属性不能包含空格或任何其他特殊字符。
    例如:

    <li id="one@one">一</li>
    <li id="two%two">二</li>
    <li id="three#three">三</li>
    <li id="four&four">三</li>
    <li id="five five">三</li>

  4. id 属性应该是有意义的,不应该太长或太短。

  5. id 属性值中使用小写字母是一个好习惯。


-6

字母 → 大写和小写

数字 → 0-9

特殊字符 → ':', '-', '_', '.'

格式应该以'.'或字母开头,后跟特殊字符或更多字母或数字。id字段的值不能以'_'结尾。

此外,不允许使用空格,如果提供了空格,则将其视为不同的值,在id属性的情况下无效。


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