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


当前回答

救命,我的Javascript坏了!

每个人都说ID不能重复。

在除FireFox之外的所有浏览器中都试用过

<div id=“ONE”></div><div id=“ONE”></div><div id=“ONE”></div><脚本>document.body.append(document.querySelectorAll(“#ONE”).length,'DIV!')document.body.append('in',typeofONE)console.log(一);//全局变量!!</script>

解释

在世纪之交,微软拥有90%的浏览器市场份额,

并实施从未标准化的浏览器行为:

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

2.为重复ID创建数组

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

2015年左右,Mozilla删除了2。来自FireFox和1。仍然有效。

所有其他浏览器仍然支持1。和2。

我每天都使用它,因为键入ONE而不是document.querySelector(“#ONE”)帮助我更快地创建原型;我不在生产中使用它。

其他回答

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。

任何字母数字值“-”和“_”都是有效的。但是,您应该以A-Z或A-Z之间的任何字符开始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:“函数体后面缺少语法错误}”

根据HTML 4规范:

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

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

严格来说,它应该匹配

[A-Za-z][-A-Za-z0-9_:.]*

但是jQuery似乎有冒号的问题,所以最好避免使用冒号。