是否仍然需要document.getElementById('id')或$('#id'

Is document.getElementById('id') or $('#id') still necessary to select an element by ID?

本文关键字:id #id document getElementById 是否      更新时间:2023-09-26

我今天看到了这个要点,在评论中作者提到

var log = document.getElementById('log');

是不必要的,因为在Javascript中,您可以只使用log来访问DOM元素。所有浏览器都是这样吗?这项技术是否有名称/参考?

令人惊讶的是,这实际上是在HTML5规范中,所以是的,它会起作用,不,它不是人们建议的遗留功能(至少现在是这样了——它过去只是IE的把戏)。

你可以在这里阅读规范,http://www.whatwg.org/specs/web-apps/current-work/#named-访问窗口对象

我同意它实际上混淆了名称空间,并可以自由地建议不要使用它——但它会而且确实适用于所有主要浏览器!

在Internet Explorer下,ID将成为全局变量,并且可以通过该名称在任何地方访问。

我认为这是一件坏事。

我记不起它的所有特征和方面,我尽我所能假装它从未发生过。

简而言之:仅IE的"功能"--最好忽略。阅读本文了解更多详细信息。

这是一个可疑的"特性",不应该用于任何用途。它引入了全局状态和全局范围的变量,这是任何应用程序中都要避免的要点之一,更重要的是,它似乎只适用于Internet Explorer和某些版本的Chrome。几乎可以肯定,它的性能会降低,因为浏览器不仅必须访问DOM,而且还必须事先查找名为log的变量。

对于现代浏览器的新版本,它可能会工作,但旧版本无法处理。如果你想让你的网站在旧的浏览器中工作,可以使用document.getElementById.