【发布时间】:2014-08-15 10:53:34
【问题描述】:
我使用过的所有浏览器都允许使用id="myDiv" 访问元素,只需编写:
myDiv
请看这里:http://jsfiddle.net/L91q54Lt/
无论如何,这种方法似乎记录得很差,事实上,我遇到的来源甚至都没有提及它,而是假设有人会使用
document.getElementById("myDiv")
或许
document.querySelector("#myDiv")
访问一个 DOM 元素,即使它的 ID 是预先知道的(即不在运行时计算)。我可以说,如果有人无意中尝试在更广泛的范围内重新定义myDiv(虽然这不是一个绝妙的主意......),后一种方法具有保持代码安全的优势,用一些不同的值覆盖它并且继续没有注意到冲突。
但除此之外呢?除了代码设计之外,使用上面的简短形式是否有任何顾虑,或者我在这里还缺少什么?
【问题讨论】:
-
一个窗口属性(如
myDiv)可以是任何东西(注意它可能会被覆盖),但getElementById返回HTMLElement(无论属性的值如何) -
@Jack:这个问题没有提到通过全局变量访问带有 ID 的 HTML 元素,这就是这个问题的意义所在。所以我不认为“高度相关”是完全正确的。
-
@Jack:也许吧。我认为找到那个副本比写答案要付出更多的努力。请注意,重复的问题只提出了该问题在最后一句话中提出的问题。在阅读它及其答案时,您必须先阅读最初的内容(所有浏览器都支持此功能吗?),然后才能回答这个问题(为什么这样做是个坏主意?)。 “不要重复自己”是编程的一个重要原则。它不是一个普遍的常数。重复并不总是邪恶的。
-
@Jack:啊,应得的荣誉。 “第一!”的合法战利品。是的,值得去做。但是,如果回答很快,那么 OP 会很快得到他们的答案,如果类似问题的措辞不同,我认为这意味着再次提出相同问题的人更有可能在自动搜索中得到匹配。跨度>
标签: javascript dom getelementbyid