如果我有一个<div id='a'>Chrome浏览器,那么在javascript中我可以做(就好像是一个全局变量).a.stuff()a
然而,这不适用于FireFox - 我将需要使用document.getElementById('a').
这里的正确行为是什么?(根据W3规格)
另外我感兴趣的是,如果我有一个id为div a但a在我的脚本中也有一个全局变量,Chrome将如何解决这种歧义.这种行为是随机的还是笨拙的?
如何将一个id由连字符(" - "),冒号(":")和句点(".")组成的元素进行翻译(好吧我知道它们可以被访问document.getElementById但浏览器将如何将其转换为表示它们的全局变量)
我是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呢?