Javascript 第二个警报框“;“未定义”;
可能重复:Javascript 第二个警报框“;“未定义”;,javascript,html,Javascript,Html,可能重复: 第二个警告框显示“未定义”?为什么会这样 <a id = "clickme">Click Me!</a> <script> var a = document.getElementById("clickme"); a.onclick = function(); { alert(this.innerHTML); setTimeout( function() { alert( this.innerHTML );
第二个警告框显示“未定义”?为什么会这样
<a id = "clickme">Click Me!</a>
<script>
var a = document.getElementById("clickme");
a.onclick = function(); {
alert(this.innerHTML);
setTimeout( function() {
alert( this.innerHTML );
}, 1000);
};
</script>
点击我!
var a=document.getElementById(“clickme”);
a、 onclick=function();{
警报(this.innerHTML);
setTimeout(函数(){
警报(this.innerHTML);
}, 1000);
};
因为在函数中
要传递给设置超时
,此
不再是元素。它要么是全局
对象(浏览器区域中的窗口
),要么是严格模式下的未定义
相反,存储对该
的引用
var a = document.getElementById("clickme");
a.onclick = function(); {
var that = this;
alert(this.innerHTML);
setTimeout( function() {
alert( that.innerHTML );
}, 1000);
};
因为在
函数中
传递给setTimeout
,这个
不再是a
元素。它要么是全局
对象(浏览器区域中的窗口
),要么是严格模式下的未定义
相反,存储对该的引用
var a = document.getElementById("clickme");
a.onclick = function(); {
var that = this;
alert(this.innerHTML);
setTimeout( function() {
alert( that.innerHTML );
}, 1000);
};
此
在设置超时
处理程序中具有不同的值。
此
在设置超时
处理程序中具有不同的值。感谢您的快速回答和链接!谢谢你的快速回答和链接!