如果元素's的ID以数字开头

what if element's ID begin with a number

本文关键字:ID 数字 开头 元素 如果      更新时间:2023-09-26

可能重复:
为什么可以';我有一个数值作为元素的ID吗?

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

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

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

开始

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

HTML4确实规范了

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

浏览器应用更宽松的HTML5规范已经有很长一段时间了,即使它仍然不是官方规范:

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

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

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

如果您偏离规范,那么您的代码就有可能无法在一个决定更严格地遵循规范的浏览器中运行。

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