相关疑难解决方法(0)

带有id的DOM树元素是否成为全局变量?

研究一个简单的HTMLElement包装器的想法我偶然发现了Internet Explorer和Chrome的以下内容:

对于DOM树中具有ID的给定HTMLElement,可以使用其ID作为变量名来检索div.所以对于一个喜欢的div

<div id="example">some text</div>
Run Code Online (Sandbox Code Playgroud)

Internet Explorer 8和Chrome中,您可以执行以下操作:

alert(example.innerHTML); //=> 'some text'
Run Code Online (Sandbox Code Playgroud)

要么

alert(window['example'].innerHTML); //=> 'some text'
Run Code Online (Sandbox Code Playgroud)

那么,这是否意味着DOM树中的每个元素都转换为全局命名空间中的变量?它是否也意味着可以使用它作为getElementById这些浏览器中方法的替代品?

javascript dom global-variables identifier getelementbyid

341
推荐指数
5
解决办法
4万
查看次数

直接引用HTML元素

可能重复:
IE/Chrome:DOM树元素是全局变量吗?
为什么window [id] === document.getElementById(id)

我刚刚在html/javascript中遇到过一些让我感到惊讶的事情.当获得对html元素的引用时,使用javascript,我以前总是使用jQuery或document.getElementById.您还可以使用它的id直接访问元素.有人可以解释这个细微差别吗?我用Google搜索但找不到任何关于此功能的引用,每个网站都会讨论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>
Run Code Online (Sandbox Code Playgroud)

提前谢谢了.

html javascript

24
推荐指数
1
解决办法
2万
查看次数

我可以在JavaScript中使用HTML元素的id作为变量吗?

无意中,我注意到我可以id在JavaScript代码中使用HTML元素.所以不是这样的:

var myCanvas = document.getElementById('myCanvas');
myCanvas.width = '600';
myCanvas.height = '400';
Run Code Online (Sandbox Code Playgroud)

我甚至可能根本没有第一行,因为变量myCanvas显然已经存在!

myCanvas.width = '600';
myCanvas.height = '400';
Run Code Online (Sandbox Code Playgroud)

这很好,但我能依靠它吗?这是我在所有现代浏览器中可以预期的正常行为吗?我不关心IE9之前的任何浏览器.

html javascript html5

6
推荐指数
1
解决办法
1617
查看次数