我已经看到并避免了这样的代码:
<div id="myDiv" onClick="alert('hi!');">Div</div>
<script>
myDiv.click(); // <-- this bit seems wrong
</script>
我觉得我应该单独通过它的id引用节点而不首先明确地将它分配给变量。像这样:
var myDiv = document.getElementById('myDiv');
我们不应该像第一个例子那样使用代码,或者我只是迷信,这是否有充分的理由?
答案 0 :(得分:0)
使用页面中的标识符而不指定它们的来源是不好的做法。
标识符被“神奇地”创建为文档对象中的属性。如果你使用它们,那么它们最初是如何到达那里的并不是很明显。如果你重命名该元素,相同的Javascript代码现在会创建一个全局变量,并且通过查看代码应该做什么以及为什么它不再工作很难看到。
此外还存在冲突风险。如果您创建一个与元素ID同名的全局变量,那么它将隐藏元素,您将无法再访问它。
通过使用getElementById
,代码清楚地表明页面中应该有一个带有该id的元素,并且它也只查找元素,因此命名冲突的风险较小。
答案 1 :(得分:0)
感谢Bergi和Pete提供有关此主题的有用信息的链接。
从这些我收集到的,为什么这是不好的做法有几个主要原因:
答案 2 :(得分:-2)
首先,这是一种不好的做法,因为维护此类代码非常困难,请考虑script
不在元素旁边,甚至不在同一文件中。
此外,当您的HTML页面/应用程序增长时,建议不要使用id
。 id
属性必须保持唯一,您可能会发现很难遵循它