jQuery中this与$(this)的差别
- $("#textbox").hover(? ?
- ??????function()?{? ?
- ???????????this.title?=?"Test";? ?
- ??????},? ?
- ??????fucntion()?{? ?
- ??????????this.title?=?"OK”;? ?
- ??????}? ?
- );?
这里的this事实上是一个Html 元素(textbox),textbox有text属性,所以这样写是全然没有什么问题的。
可是假设将this换成$(this)就不是那回事了,Error--报了。this与$(this)的差别在此。
- Error?Code:? ?
- $("#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应该是比較不错的选择。
-