Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 直接引用HTML元素_Javascript_Html - Fatal编程技术网

Javascript 直接引用HTML元素

Javascript 直接引用HTML元素,javascript,html,Javascript,Html,可能重复: 我刚刚在html/javascript中遇到了一些让我有点吃惊的东西。当使用javascript获取对html元素的引用时,我以前总是使用jQuery或document.getElementById。您似乎还可以通过使用元素的id直接访问元素。有人能解释一下其中的细微差别吗?我在谷歌上搜索过,但找不到任何关于此功能的参考,每个网站都在谈论getElementById 下面的页面片段说明了这一点 <html> <head> </head> &l

可能重复:

我刚刚在html/javascript中遇到了一些让我有点吃惊的东西。当使用javascript获取对html元素的引用时,我以前总是使用jQuery或document.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>


非常感谢。

使用
getElementById
更加灵活易读。例如,这将不起作用:

<input type="button" value="direct" onclick="document.innerText = 'direct';" />
<div id="document"></div>

原因显而易见,但这将:

<input type="button" value="getElement" onclick="document.getElementById('document').innerText = 'getElementById'" />
<div id="document"></div>


其他开发人员更清楚地了解了真正的情况。

我不相信这是一个有文档记录的功能,它在Firefox(6)中似乎不起作用,但在最新版本的Chrome和IE 6-9中似乎起作用


我不会依赖它,只会考虑浏览器特性的一个怪癖。

< P>能够根据其<代码> [ID] 选择页面上的元素,这是早期JavaScript(DOM LVL 0或1个Myimk,找不到源)的一个“特征”。 不幸的是,这是一个喜怒无常的特征。如果您有:

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


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

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

var foo=document.getElementById('bar');
因此,基于元素的
[id]
调用元素的细微差别如下:

不要用它。 这是不一致的,也不能保证将来会得到支持


就我个人而言,我希望看到这个“功能”与
document.all类似。它只会导致比它解决的问题更多的问题,而且
document.getElementById
,虽然肯定很详细,但它是有意义的和可以理解的。

+1以前没有遇到过这一点,但肯定可以工作:您在哪些浏览器中验证过这一点?无法常用,因为它可能无法在所有浏览器中工作。这不是跨浏览器。一些浏览器可能已经开始支持它了,但不是所有的,也不是旧版本。这个问题已经在这个线程中得到了回答:上帝,为了得到你容易理解的问题标题,有一个副本是值得的!我永远不会在“全球树”下找到这个。好悲伤。我当然同意“不要使用它”,但不幸的是它已经慢慢地进入了世界。可以预见的是,微软正在推动标准化,而Mozilla正在推动将“功能”限制为仅限于怪癖。据我所见,微软声称改变IE的行为会破坏很多网站。@AndyE,改变任何东西都会破坏很多网站。这是因为从工作到中断的站点范围是连续的,而不是离散的。有许多网站已经被破坏。它被记录为HTML生活标准的一部分:。我不确定它到底是什么时候加的。同样在这个答案发布之后,W3C提出了一个HTML5.2建议,它也出现在那里。实际上,它也在HTML5.1规范中。
<div id="foo"></div>
<div id="bar"></div>
<script>var foo = document.getElementById('bar');</script>