可能重复:
Why can't I have a numeric value as the ID of an element?
元素的ID必须以字母([A-Za-z])开头。但是,如果我做了像
这样的事情<td id='9'></td>
javascript可以找到这样的元素。所以我不明白为什么我不能用数字
来启动它答案 0 :(得分:4)
标准规定ID必须以字母开头。如果浏览器(或者更确切地说是JavaScript引擎)选择忽略该要求,那就是它的方式。浏览器真的很宽容......
答案 1 :(得分:2)
如果您偏离规范,那么您的代码将无法在浏览器中运行,而浏览器决定更严格地遵循您正在使用的规范。
这可能没问题,但这似乎是一种不必要的风险,因为你可以通过在数字之前加上一些固定的字符串来避免任何这样的问题,并保持“数字”id的语义。
答案 2 :(得分:1)
HTML 4确实标准化了
ID和NAME令牌必须以字母([A-Za-z])开头,可能是 后跟任意数量的字母,数字([0-9]),连字符(“ - ”), 下划线(“_”),冒号(“:”)和句点(“。”)。
有很长一段时间浏览器应用much more permissive HTML5 norm,即使它仍然不是正式的:
任何字符串,具有以下限制:
- 必须至少有一个字符
- 不得包含任何空格字符
但请注意,如果不遵守HTML4规范,可能会遇到旧版浏览器的问题。另请注意,在大多数语言中,程序员习惯于“通常的id”,这更像是你在HTML4中所拥有的。通过使用“不寻常”的id,您可以运行(不那么大)风险来遇到无法处理它们的库。