首页 > function 的这个 $(this) 怎么不是当前,而是 Window,怎么让他是当前

function 的这个 $(this) 怎么不是当前,而是 Window,怎么让他是当前

function 的这个 $(this) 怎么不是当前,而是 Window,怎么让他是当前

html<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script type="text/javascript" src="jquery-1.11.2.min.js"></script>
</head>

<body>


<div onClick="zhangkai(0)">打开</div>




<script>
function zhangkai(id){
    var wz = $(this).html();
    console.log(wz);
    console.log($(this));
}
</script>


</body>
</html>

this总是指向当前函数的调用者。例如:

javascriptfunction f(){
    console.log(this.foo);
}

window.foo = 'window';
var obj = { foo: 'obj', func: f };

window.f();     // window
f();            // window,与window.f()完全等效
obj.func();     // obj   

另外一个点在于:在浏览器环境下,全局变量、函数会成为window的属性。浏览器中的window相当于服务器(比如CommonJS)中的global


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script type="text/javascript" src="jquery-1.11.2.min.js"></script>

<script>
$(function(){
    $('div').on("click",function(){
        var wz = $(this).html();//此时的this就是你想要的
        console.log(wz);
        console.log($(this));
        //或者
        //zhangkai.call(this,0);
    });
});

function zhangkai(id){
    var wz = $(this).html();
    console.log(wz);
    console.log($(this));
}
</script>

</head>

<body>


<div>打开</div>

</body>
</html>

来,兄弟,把他看完你就懂了:http://www.cnblogs.com/sharpxiajun/p/4148932.html


你可以试试在onclick()把this传进来,或者在js里监听事件


可以这样

<div onClick="zhangkai(this)">打开</div>

const zhangkai = (this) => {
 // code
}

或者这样

<div id="zhangkai">打开</div>

let zhangkai = document.getElementById('zhangkai');

zhangkai.onclick(() => {
    // code
})
【热门文章】
【热门文章】