欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

实例教程讲解JQuery中this和$(this)区别

程序员文章站 2022-04-18 13:42:03
平时很少在jquery中用到this。查看代码时发现用到了,就调试出this的值,心想原来如此。还是挺有用的。这里总结一下this与$(this)的区别和使用。   $(this...

平时很少在jquery中用到this。查看代码时发现用到了,就调试出this的值,心想原来如此。还是挺有用的。这里总结一下this与$(this)的区别和使用。

  $(this)生成的是什么?

  $()生成的是什么呢?实际上$()=jquery(),就是说返回的是一个jquery的对象。

  通常我们为了简便直接使用$()。实际上,该函数省略了一个参数context。根据选择器选取匹配的对象即$(selector, context),以jquery包装集的形式返回。

  context可以是dom对象集合或jquery包装集,传入则表示要从context中选择匹配的对象,不传入则表示范围为文档对象(即页面全部对象),即$(selector)=$(selector,document)。

  this指的是,调用函数的那个html对象。

例子:

 

代码如下:


$("#textbox").hover(  
  function() {  
       this.title = "test";  
  },  
  fucntion() {  
      this.title = "ok”;  
  }  
);

 

这里的this其实是一个html元素(textbox),this是js中的。textbox有text属性,所以这样写没什么问题。

 

代码如下:


$("#textbox").hover(  
       function() {  
   $(this).title = "test";  
       },  
       function() {  
   $(this).title = "ok";  
       } 
);

 

这里的$(this)是一个jquery对象,而jquery对象沒有title 属性,因此这样写是错误的。

结论:

  this,表示当前的上下文对象是一个html对象,可以调用html对象所拥有的属性和方法。
  $(this),代表的上下文对象是一个jquery的上下文对象,可以调用jquery的方法和属性值。

实例(选项卡):

 

代码如下:


tabs($("#nav a"), $(".content")); 
function tabs(tab, content){
 content.hide();
 content.eq(0).show();
 tab.click(function(){
  var index = tab.index(this);
  tab.removeclass("current");
  $(this).addclass("current");
  content.hide();
  content.eq(index).animate({opacity:'show'}, 200);
 });
}