Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 假设元素';s ID以数字开头_Javascript_Html - Fatal编程技术网

Javascript 假设元素';s ID以数字开头

Javascript 假设元素';s ID以数字开头,javascript,html,Javascript,Html,可能重复: 元素的ID必须以字母([a-Za-z])开头。但如果我做了类似的事情 <td id='9'></td> javascript可以找到这样的元素。因此,我不明白为什么不能以数字开头。标准规定ID必须以字母开头。如果浏览器(或者更确切地说是JavaScript引擎)选择忽略这个需求,那么它就是这样。浏览器真的原谅了这一点…HTML4确实规范了这一点 ID和名称标记必须以字母([a-Za-z])开头,并且可以是 后跟任意数量的字母、数字([0-9])、连字符

可能重复:

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

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


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

标准规定ID必须以字母开头。如果浏览器(或者更确切地说是JavaScript引擎)选择忽略这个需求,那么它就是这样。浏览器真的原谅了这一点…

HTML4确实规范了这一点

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

浏览器应用此功能的时间很长,即使它仍然不是官方的:

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

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

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

如果您偏离规范,那么您的代码可能无法在决定更严格遵守规范的浏览器中工作


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

标识符的一个常见规则是,它们可以包含数字,但不能以数字开头(在TSQL和C#AFAIK中也是如此)。不确定是否有什么好的理由。允许类标识符以数字开头,但不允许ID标识符以数字开头。就这些。给它一个像id=“item_1”这样的前缀,你很好,你可以用javascript分割所有的id。我认为还值得注意的是,C风格的编程语言,包括javascript,不能使用以数字开头的变量名,因为这会给解析器/编译器/解释器带来混乱。