jQuery中的this用法.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
jQuery中的this用法

?jQuery中的this用法在使用jquery操作js时,经常整不明白this与$(this)。抽空仔细测试了一把,记录下来以供在忘记的时候拉出来参考参考! 原来js中的this这么好用 $(document).ready(function(){?   var DragElement=null;?   $(#zz).mousedown(function(){?   DragElement=this;//这时this指的就是$(#zz)对象?   $(document).mousemove(function(){?   如果直接$(this).css(left)//由于是在mousemove内,这样this对象就不是$(#zz),?   这时可以用$(DragElement).css(left)//这样取的就是$(#zz)? })? })? }) $(this)生成的是什么 $()生成的是什么呢?实际上$()=jquery(),那么也就是说返回的是一个jquery的对象。? 题外话:通常我们为了简便直接使用$(),实际上,该函数省略了一个参数context,即$(selector)=$(selector,document).如果指定context,可以指定context为一个dom元素集或者jquery对象。 那么依照,$()返回的是jquery对象这一结论,我们可以得出$(this)得到的是一个jquery对象.我们可以使用万能的alert()方法打印出一个对象:? alert($(#btn)); 显示的结果: 该图红色框勾选出来的是一个object,不用考虑,该object自然是jquery的对象咯。也即是说我们用通过$(#btn)来调用jquery的方法和属性等。 this代表什么? this,编程的人都知道this表示上下文所处的这个对象,这个自然是不错的,可是这个对象到底是个什么对象呢?加入js里面也有getType的话返回的值会是什么呢?其实js里面不需要使用getType,因为我们有万能的alert.请看看下面的代码:? 复制代码 代码如下: $(#btn).bind(click,function(){ alert(this);? alert($(this));? }); 根据我们的经验(因为$()生成的是jquery的对象嘛),this自然是一个jquery的对象咯。可是我们看看返回的结果: 返回的是什么?【object HTMLInputElement】——伟大的html对象,嘿嘿。所以我们通常在直接使用this.val()或者直接通过this来调用jquery所特有的方法或属性的时候会报错误: 为什么呢?明知故问!html对象当然“不包含属性或方法”了。那么为什么在一个jquery对象的上下文中调用this返回的是一个html对象而不是jquery对象 呢?翻遍jquery的api文档,貌似jquery中并未对this这一关键字进行过特殊“处理”,也就是说这里this是js中的,而不是jquery重新定义了的。so...当然这仅仅是我自己的想法,如果有对此更了解的朋友可以留言更正。而我们再看一下以上代码中alert($(this));的返回,自然是jquery的对象了,在此调用jquery特有的方法和属性,完全没有问题。 结论: this,表示当前的上下文对象是一个html对象,可以调用html对象所拥有的属性,方法? $(this),代表的上下文对象是一个jquery的上下文对象,可以调用jquery的方法和属性值。 What is this?? In many object-oriented programming languages, this (or self) is a keyword which can be used in instance methods to refer to the object on which the currently executing method has been invoked.? 复制代码代码如下: $(#textbox).hover(? function() {? this.title = Test;? },? fucntion() {? this.title = OK”;? }? );? 这里的this其实是一个Html 元素(textbox),textbox有text属性,所以这样写是完全没有什么问题的。? 但是如果将this换成$(this)就不是那回事了,Error–报了。? Error Code:? 复制代码代码如下: $(#textbox).hover(? function() {? $(this).title = Test;?

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档