<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
function fun() {
alert($(this).length); // 1
alert($(this).val()); // 未定义
}
</script>
</head>
<body>
<input id="Button1" type="button" value="test" onclick="fun()"/>
</body>
</html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
function fun() {
alert($(this).length); // 1
alert($(this).val()); // 未定义
}
</script>
</head>
<body>
<input id="Button1" type="button" value="test" onclick="fun()"/>
</body>
</html>
这里调用fun方法之后,这个this对象就代表触发这个click事件的dom元素。
$('#Button1').click(function(e){ })
})(jQuery)
$("#Button1").click(function(){ })
})这样写比较好
$("#Button1").click(function(){ })
})
alert($(this).length); // 1
alert($(this).val()); // 未定义
$() 是jquery的对象构造器,这里$(this)构造了一个jq对象,其length为1alert($(this).val()); // 未定义 我也疑惑,为什么没取得 value="test" test值
看来很多同学有必要复习下javascript里this的含义。
去掉jQuery调用,fun定义改成
<script>
function fun(){
alert(this)
}
</script>
<input id="Button1" type="button" value="test" onclick="fun()"/>
这时候this是什么?
是window哦,明白了,之所以上面
$(this).val() 为undefined。
this.name="csdn";
}var obj = Person(); //this 绑定在window上
var obj = new Person(); //this 绑定在当前对象onclick="Person()" // 与var obj = Person()一样
在不同的情况下,$(this)表示不同的东西,也就是jquery包装集
$(this)是jquery对象能使用jquery封装好的属性和方法