jq元素调用方法内部this指向为js对象,而不是jq对象
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div class="cls">
1
</div>
<div class="cls">
2
</div>
<div class="cls">
3
</div>
<script src="js/jquery1.8.3.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
console.log($('.cls').each(function(){
console.log(this);
}));
</script>
</body>
</html>
打印的结果是
上面是三个div,是js对象,我理解的应该是jq对象$('div')才对,this不是谁调用指向谁吗,$('.cls').each(function(){})这里是$('.cls')调用的,本来应该是指向这个jq对象的,但后面有each(),所以应该是指向$('.cls')中的每一个jq对象,输出为js对象不是很理解
正在回答
同学你好,同学疑惑的点应该是不知道什么时候返回的是jq对象,什么时候返回的是DOM对象。可以参考下方的小例子:
控制台:
从上面的打印结果可以看出,使用$()包裹的返回的是jq对象,如果使用了下标,那么将会返回DOM对象。
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星