Javascript 不是一个合适的命名约定,但它';it’工作正常,如果命名约定有效,它如何工作以及需要什么?

Javascript 不是一个合适的命名约定,但它';it’工作正常,如果命名约定有效,它如何工作以及需要什么?,javascript,html,Javascript,Html,我是javascript编程新手。我在练习javascript时发现了以下示例 <html> <head> <script type="text/javascript"> function changeTabIndex() { document.getElementById('1').tabIndex="3" document.getElementById('2').tabIndex="2" document.getElementById('3

我是javascript编程新手。我在练习javascript时发现了以下示例

<html>
<head>
<script type="text/javascript">
function changeTabIndex()
  {
  document.getElementById('1').tabIndex="3"
  document.getElementById('2').tabIndex="2"
  document.getElementById('3').tabIndex="1"
  }
</script>
</head>
<body>

<p><a id="1" href="http://www.w3schools.com">1</a></p>
<p><a id="2" href="http://www.w3schools.com">2</a></p>
<p><a id="3" href="http://www.w3schools.com">3</a></p>

<input type="button" onclick="changeTabIndex()"
value="Change TabIndex" />

</body>
</html>  

函数changeTabIndex()
{
document.getElementById('1')。tabIndex=“3”
document.getElementById('2')。tabIndex=“2”
document.getElementById('3')。tabIndex=“1”
}


我的疑问是,id属性的命名约定必须以字母开头,后跟数字和下划线。但在这个例子中,即使他们使用数字作为id,代码仍然可以正常工作。那么,需要遵循哪些命名约定呢。这似乎很简单,但请大家澄清一下。

大多数人都建议您不要依赖www.w3schools.com获取有关Javascript的信息。他们的文档和示例中有很多错误。更好的信息来源是实际的W3C参考文档。有关ID的信息,请访问。在这个特定的实例中,您的浏览器实现根本没有遵循规范:)

根据HTML5中的规定,id必须至少包含一个字符,并且不能包含任何空格字符。我猜您的示例可能无法在较旧的浏览器中运行。

getElementById()在ID属性中查找令牌值,该值实际上可以是“”或“”。我还没有看到规范中明确说明这一点的部分,但这是我根据您的示例解释文档的方式。这两种约定在实践中都是有效的,但是,我从来都不喜欢只使用数字ID。类似于代码中编写的代码会导致有用性的下降。

阅读此@IliaFrenkel,问题是我发现w3schools在信息质量方面严重不足。在许多情况下,它部分正确,但在示例材料中存在严重问题。假设w3schools都错了,反而更好。@zzzzBov我也不喜欢w3schools,但假设整个网站都错了,这有点雄心勃勃。@IliaFrenkel,一块坏了的手表一天正确两次。但这并不意味着我会穿它。那有什么问题吗?如果您关心约定,请不要使用数字标识。