jquery中this与$(this)的用法区别.先看如下代码:html
$("#textbox").hover( function() { this.title = "Test";
}, fucntion() { this.title = "OK”;
} );
这里的this实际上是一个Html 元素(textbox),textbox有text属性,因此这样写是彻底没有什么问题的。 可是若是将this换成$(this)就不是那回事了,就会报错了。 如下写法是错误的:jquery
$("#textbox").hover( function() { $(this).title = "Test";
}, function() { $(this).title = "OK";
} );
这里的$(this)是一个JQuery对象,而jQuery对象沒有title 属性,所以这样写是错误的。 JQuery拥有attr()方法能够get/set DOM对象的属性,因此正确的写法应该是这样:浏览器
$("#textbox").hover( function() { $(this).attr('title', 'Test'); }, function() { $(this).attr('title', 'OK'); } );
使用JQuery的好处是它包裝了各类浏览器版本对DOM对象的操做,所以统一使用$(this)而再也不用this应该是比较不错的选择。this
$()
生成的是什么呢?实际上$()=jquery()
,那么也就是说返回的是一个jquery
的对象。spa
$(this)
是jquery
对象,能调用jquery
的方法,例如click()
, keyup()
。code
$(function () { $('button').click(function () { alert(this);//this 表示原生的DOM //$(this)表示当前对象,这里指的是button }) });
结论:this
,表示当前的上下文对象是一个html DOM
对象,能够调用html
对象所拥有的属性,方法。$(this)
,表明的上下文对象是一个jquery
的上下文对象,能够调用jquery
的方法和属性值。htm