相关疑难解决方法(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万
查看次数

是否存在一个规范,即元素的id应该成为全局变量?

如果我有一个<div id='a'>Chrome浏览器,那么在javascript中我可以做(就好像是一个全局变量).a.stuff()a

然而,这不适用于FireFox - 我将需要使用document.getElementById('a').

这里的正确行为是什么?(根据W3规格)

另外我感兴趣的是,如果我有一个id为div aa在我的脚本中也有一个全局变量,Chrome将如何解决这种歧义.这种行为是随机的还是笨拙的?

如何将一个id由连字符(" - "),冒号(":")和句点(".")组成的元素进行翻译(好吧我知道它们可以被访问document.getElementById但浏览器将如何将其转换为表示它们的全局变量)

html javascript dom global-variables identifier

39
推荐指数
3
解决办法
8458
查看次数

javascript变量对应于具有相同ID的DOM元素

我是javascript的新手,我刚刚发现了一个我从未见过的javascript行为.如果我有一个带有指定id的DOM元素,比如"x",那么在我的javascript中,该元素会自动分配给变量x.我在chrome和safari中看到了这一点.这是javascript的文档功能吗?

例如:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form id='x'>
<input type='text' name='info' id='info'/>
<input type='submit' name='submit' value='Complete'/>
</form>
<script type='text/javascript'>
  window.onload = function() {
    alert( x==document.getElementById('x') );
    info.value = 'Test me!';
  }
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

加载后,它会提示为true,输入区域将显示"Test me!".如果这是正确的行为,为什么我们需要document.getElementById呢?

javascript dom

16
推荐指数
2
解决办法
4544
查看次数