我注意到,至少在 Firefox 中,jQuery 似乎为页面上具有 ID 的每个元素创建一个全局变量,并调用该变量(无论 ID 是什么)。在这张来自 Firebug 的图片中,看看我是如何得到一个名为 querystring
的元素的,但我似乎也有一个全局变量也叫做 querystring
:
这个变量HtmlInputElement
的类型,因为元素定义为:
<input id="querystring" ...>
这是 jQuery 中的全局快捷方式吗,例如 varname
与 $('#varname')
相同,还是我不明白我所看到的在这里?
最佳答案
这实际上是一个 HTML5 的东西,而不仅仅是 jQuery。
这段代码展示了一个很好的例子:
<a id="yestheyreglobals">Are IDs globals?</a>
<script>
if ( yestheyreglobals ) {
document.write('Yes they\'re globals')
}
</script>
将其粘贴到一个空的 .html 文件中并观看魔术。不需要 jQuery。
来源:http://codepen.io/anon/pen/Arasd
尽管这可行,但并非所有浏览器都支持它,因此仍应依赖 document.getElementById
。
还有 WHATWG 标准的链接以防有人好奇:http://www.whatwg.org/specs/web-apps/current-work/#named-access-on-the-window-object
关于javascript - jQuery 是否为每个具有 id 的元素创建一个全局范围的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22641852/