为HTML元素创建id属性时,该值有哪些规则?


当前回答

元素的唯一标识符。

文档中不能有多个元素具有相同的id值。

任何字符串,具有以下限制:

必须至少有一个字符长不得包含任何空格字符:U+0020空格U+0009字符表(选项卡)U+000A管线进料(LF)U+000C模板进料(FF)U+000D回车(CR)

使用ASCII字母和数字以外的字符,“_”、“-”和“.”可能会导致兼容性问题,因为HTML 4中不允许这些问题。虽然HTML5中取消了这一限制,但为了兼容性,ID应该以字母开头。

其他回答

对于HTML5:

该值必须在元素主页中的所有ID中唯一子树,并且必须至少包含一个字符。该值不得包含任何空格字符。

至少有一个字符,没有空格。

这为使用重音字符等有效用例打开了大门。这也为我们提供了更多的弹药,因为除非你非常小心,否则你现在可以使用id值,这会导致CSS和JavaScript出现问题。

HTML5

请记住,ID必须是唯一的,即文档中不能有多个元素具有相同的ID值。

HTML5中关于ID内容的规则是(除了唯一性之外):

此属性的值不能包含空格。[...]虽然HTML5中取消了这一限制,但为了兼容性,ID应该以字母开头。

这是关于ID的W3规范(来自MDN):

任何字符串,具有以下限制:必须至少有一个字符长不能包含任何空格字符以前版本的HTML对ID值的内容设置了更大的限制(例如,它们不允许ID值以数字开头)。

更多信息:

W3-全局属性(id)MDN属性(id)

没有空格,并且必须至少以a到z和0到9之间的字符开头。

根据HTML 4规范:

ID和NAME标记必须以字母([a-Za-z])开头,后面可以是任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“_”)、冒号(“:”)和句点(“.”)。

一个常见的错误是使用以数字开头的ID。

自ES2015以来,如果文档字符集设置为UTF-8,我们也可以使用几乎所有的Unicode字符作为ID。

在此测试:https://mothereff.in/js-variables

阅读:ES2015中有效的JavaScript变量名

在ES2015中,标识符必须以$、_或任何带有Unicode派生的核心属性ID_Start。标识符的其余部分可以包含$、_、U+200C零宽度非连接符、U+200D零宽度连接符或任何Unicode符号派生的核心属性ID_Continue。

const target=document.querySelector(“div”).idconsole.log(“Div-id:”,目标)document.getElementById(目标).style.background=“chartreuse”第二部分{边框:5px蓝色实心;宽度:100%;高度:200px}<div id=“H̹̙̦̮͉̩̗ͻͧ̏̾Eͨ͆͒̆ͮ͏̷̰̣̫̤C͈̻ͯ͐O̜͎͍878;͐͗ͤ781;͢M̡̲̭͍͇̼̟̯̦̉̒͠Ḛ̛̙̞̪̗ͥͤͩ̾͑̔͐ͅṮ“”</div>


你应该使用它吗?可能不是个好主意!

阅读:JavaScript:“函数体后面缺少语法错误}”