Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 第二个警报框“;“未定义”;_Javascript_Html - Fatal编程技术网

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);
};

设置超时
处理程序中具有不同的值。


设置超时
处理程序中具有不同的值。

感谢您的快速回答和链接!谢谢你的快速回答和链接!