0

可能重复:
为什么我不能将数值作为元素的 ID?

元素的 ID 必须以字母 ([A-Za-z]) 开头。但是如果我做类似的事情

<td id='9'></td>

javascript 可以找到这样的元素。所以我不明白为什么我不能以数字开头

4

3 回答 3

4

该标准规定 ID 必须以字母开头。如果浏览器(或者更确切地说是 JavaScript 引擎)选择忽略该要求,那么情况就是如此。浏览器真的很宽容...

于 2012-09-14T12:00:22.943 回答
2

如果您偏离规范,您将面临代码无法在决定更严格地遵循规范的浏览器中运行的风险,而不是您正在使用的浏览器。

这可能很好,但这似乎是不必要的风险,因为您可以通过在数字前加上一些固定字符串并维护“数字”id 的语义来避免任何此类问题。

于 2012-09-14T12:02:30.200 回答
1

HTML 4 确实规范了

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

很长一段时间以来,浏览器都采用了更为宽松的 HTML5 规范,即使它仍然不是官方规范:

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

  • 必须至少有一个字符长
  • 不得包含任何空格字符

但要小心,因为如果不遵守 HTML4 规范,您可能会在使用旧版浏览器时遇到问题。另请注意,在大多数语言中,程序员都习惯于“通常的 id”,这更像是 HTML4 中的。通过使用“不寻常的” id,您会冒(不是很大)遇到无法处理它们的库的风险。

于 2012-09-14T12:02:01.007 回答