可能重复:
IE/Chrome: are DOM tree elements global variables here?
我目前正在使用jquery mobile在移动网站上工作,我注意到一些有趣的东西(无论如何,对我来说,因为我还是js的新手)。在函数内部,您可以引用仅具有id的元素。
这是我使用的测试代码(在chrome 22.0.x,firefox 16.0.1和safari 5.1.7上):
<!DOCTYPE html>
<html>
<head></head>
<body onload="tt()">
<div id="abc">Test</div>
<a id="cba">Test2</a>
</body>
<Script>
function tt() {
console.log(abc);
abc.style.backgroundColor = "red";
return cba;
}
</Script>
</html>
没有getElementById,没有jquery选择器,只有id。它总是这样吗?如果是这样,这是一个很好的做法,为什么这样做?我认为函数必须有一个上下文,但它在哪里,它是页面?
任何见解都将不胜感激,谢谢。
答案 0 :(得分:5)
你真的在做:
window.abc;
IE开始这是一个非常糟糕的设计选择。
请参阅此great answer to a very very similar question
这真的是重复但标题并没有反映这一点。
在你的控制台中尝试这一行,看看我的意思。
(function(){ console.log(this); })(); // logs the Window object