rrdawlx
2015-04-10 02:01
采纳率: 42.9%
浏览 2.1k

jQuery对象中,this指向哪个对象

 <script>
$.fn.extend({
    im : function(){
            console.log($(this).attr('id'));
            console.log(this == document.body);
            console.log(this.nodeName);
        }
});

$('body').im();
</script>

图片说明
这样一段JS代码,this 应该是指向 body,但是,为什么
this == document.body 是false
this.nodeName 是undefined

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • danielinbiti 2015-04-10 02:26
    已采纳

    this指向实例对象,也就是body,但是jquery在$的时候,进行了init处理,返回后的this是个数组对象。和页面中的this不是一回事
    所以用DOM方式访问应该是
    this[0]==document.body 和this[0].nodeName

    点赞 打赏 评论
  • 子祥 2015-04-10 02:32

    图片说明

    这里的this 指的就是
    {
    im : function(){
    console.log($(this).attr('id'));
    console.log(this == document.body);
    console.log(this.nodeName);
    }
    } 对象

    点赞 打赏 评论
  • lhl_lqc 2015-04-10 02:41

    这里的this指的是jquery的元素对象。即$("#xxxx")这个对象,要取到dom对象需要this[0]。

    点赞 打赏 评论
  • this指向jQuery包装过的对象,并不是DOM对象,要通过this[0]转换后才会是DOM对象

    点赞 打赏 评论

相关推荐 更多相似问题