是否还需要document.getElementById('id')或$('#id')来按ID选择元素?

Jam*_*Lim 6 html javascript dom

我今天遇到了这个要点,并在评论中提到了这一点

var log = document.getElementById('log');
Run Code Online (Sandbox Code Playgroud)

是不必要的,因为在Javascript中你只能log用来访问DOM元素.所有浏览器都是如此吗?这种技术有名称/参考吗?

Jer*_*her 5

在Internet Explorer下,ID将成为全局变量,并且可以通过该名称随处访问.

我认为这种"错误"是一件坏事.

我不记得它的所有功能和方面,我尽我所能尝试假装从未发生过.

简而言之:仅限IE的"功能" - 最好被忽略.阅读本文了解更多详情.

  • @Jim:Chrome实现了IE的一些功能,也是全局`event`对象.它仍然不是一个很好的功能. (3认同)
  • @JimLim - 没有意识到Chrome复制了它.我仍然坚持我的建议**忽略它**. (2认同)

Pan*_*lis 4

令人惊讶的是,这实际上是在 HTML5 规范中,所以是的,它会起作用,而且不,它不是建议的遗留功能(至少 - 它曾经是 IE 独有的技巧)。

您可以在此处阅读规范, http://www.whatwg.org/specs/web-apps/current-work/#named-access-on-the-window-object

我同意它实际上使命名空间变得混乱,并且会冒昧地建议不要使用它 - 但它会并且确实适用于每个主要浏览器!