javascript - 直接引用 HTML 元素

标签 javascript html

<分区>

Possible Duplicate:
IE/Chrome: are DOM tree elements global variables here?
why window[id] === document.getElementById( id )

我刚刚在 html/javascript 中遇到了一些让我有点吃惊的东西。在使用 javascript 获取对 html 元素的引用时,我以前总是使用 jQuerydocument.getElementById。您似乎还可以通过使用元素的 id 直接访问元素。有人可以解释这其中的细微差别吗?我用谷歌搜索但找不到任何关于此功能的引用,每个网站都在谈论 getElementById

以下页面片段说明了这一点。

<html>
<head>
</head> 
<body>
    <input type="button" value="getElement" onclick="document.getElementById('blah').innerText = 'getElementById'" />
    <input type="button" value="direct" onclick="blah.innerText = 'direct';" />
    <div id="blah"></div>
</body>

非常感谢。

最佳答案

能够根据元素的 [id] 选择页面上的元素是早期 JavaScript 的“功能”(DOM lvl 0 或 1 methinks,似乎无法找到源代码)。

不幸的是,这是一种气质特征。如果你有会发生什么:

<div id="window"></div>

<div id="document"></div>

更好的是,这里发生了什么?

<div id="foo"></div>
<div id="bar"></div>
<script>var foo = document.getElementById('bar');</script>

因此,根据元素的 [id] 调用元素的细微差别就是:

不要使用它。

它不一致,并且不能保证在未来获得支持。

就我个人而言,我希望看到此“功能”沿用document.all 的方式。它只会导致比解决的问题更多的问题,document.getElementById 虽然冗长,但却是有意义且易于理解的。

关于javascript - 直接引用 HTML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7826737/

相关文章:

javascript - Javascript/React 中的动态配置变量

html - 无法使用 CSS 垂直对齐元素

php - 在 Dojo 按钮上单击执行 PHP 脚本

javascript - 使谷歌地图跨越长页面

javascript - 网站根据一天中的时间变化

HTML 格式无法快速与 UILabel 一起使用

javascript - Jquery 随机停止工作

javascript - 使用 JavaScript 对图像进行 Div

Javascriptcore ios调用类方法

javascript - beforeunload 事件和 Content-Disposition=attachment