`
frank1998819
  • 浏览: 731402 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

$(this) 与 this 区别 (转)

 
阅读更多

如果你要使用html元素本身的属性或方法就需要使用this,如果你要使用jQuery包装后的方法或属性就要$(this),一般则有如下的关系.

$(this)[0] == this;上文的代码是要使用this的地方是要调用表单form的有reset方法,而这一方法jQuery没有包装支持,所以才有this.reset(),也可以使用$(this)[0].reset();

关于什么时候使用二者?可以看如下例子:
[html]
< a href="http://segmentfault.com/q/1010000000125418" target="_blank" data-id="1010000000125418">jQuery</a>

<a href="http://segmentfault.com/q/1010000000125418" target="_blank" data-id="1010000000125418">jQuery</a>
[javascript] view plaincopyprint?
$('a').click(function(){
this.innerHTM==$(this).html()=='jQuery';//三者是一样的.
this.getAttribute('href')==this.href==$(this).attr('href')//三者是一样的;
this.getAttribute('target')==this.target==$(this).attr('target')//三者是一样的;
this.getAttribute('data-id')==$(this).attr('data-id')//二者是一样的;
});

$('a').click(function(){
this.innerHTM==$(this).html()=='jQuery';//三者是一样的.
this.getAttribute('href')==this.href==$(this).attr('href')//三者是一样的;
this.getAttribute('target')==this.target==$(this).attr('target')//三者是一样的;
this.getAttribute('data-id')==$(this).attr('data-id')//二者是一样的;
});
从以上代码可以看出二者的差异.

或者 简单理解:

this是html元素对象吧~
$(this)成为jQuery对象
或者 :
this 是 JavaScript 中的关键字。
$(this) 可以认为是用 jQuery 包装过 JavaScript 中的 this,包装后 $(this) 就会继承 jQuery 的方法。

 

-------------------------------------------

$("this").是不存在的。this 指本对象其实是JavaScript的操作,$(this)是jquery对象,只能用jquery方法。

 

 

---------------------this 、 $(this) 到底代表什么 ? --------------------------------------------------

它指代函数对象、jquery对象、还是dom对象、还是html?


this 具体是什么,由 this 所在位置而定。

 

通常情况下
function a(sId) {
   this.id = sId;
  //函数内部的 this 是这个函数的实例
}

用 prototype 扩展摸个对象的时候
Array.prototype.clear = function() {
   // 这儿的 this 指的是数组本身
   this.length = 0;
};

jQuery 的 this 一般指当前的 dom 对象。
$(DOM对象) 返回的是 jQuery 对象,这个对象可以用 jQuery 的各种函数。

$('body a').click(function(){
    var url = $(this).attr('href');
    //下面这句话其实已经回答了你的问题,Firebug 的 Console 里面会显示 this 的具体内容
    console.log(this);
});

 

 

 

 

分享到:
评论

相关推荐

    jQuery中$this和$(this)的区别介绍(一看就懂)

    // 而$(this)是个转换,将this表示的dom对象转为jquery对象,这样就可以使用jquery提供的方法操作。 (function($){ $.fn.hilight = function(options){ debug(this); var defaults = { foreground: 'red', ...

    浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法

    1.JQuery this和$(this)的区别 相信很多刚接触JQuery的人,很多都会对$(this)和this的区别模糊不清,那么这两者有什么区别呢? 首先来看看JQuery中的 $() 这个符号,实际上这个符号在JQuery中相当于JQuery(),即$...

    Vue 解决通过this.$refs来获取DOM或者组件报错问题

    1.关于this.$refs的使用场景 如果ref属性加在普通元素上,那么this.$refs.name则指向该DOM元素 ”p”&gt;hello &lt;!– this.$refs.p 指向该DOM元素 –&gt; 如果ref属性加在组件上,那么this.$refs.name指向该组件实例 ...

    js原生态函数中使用jQuery中的 $(this)无效的解决方法.docx

    js原生态函数中使用jQuery中的 $(this)无效的解决方法.docx

    $this-是什么意思

    $this-是什么意思 我们一般是先声明一个类,然后用这个类去实例化对象! 但是,当我们在声明这个类的时候,想在类本身内部使用本类的属性或者方法。应该怎么表示呢?

    PHP中$this和$that指针使用实例

    主要介绍了PHP中$this和$that指针使用实例,也可说是它们的使用区别详解,实例一看就明白,需要的朋友可以参考下

    CI框架中$this-load-library()用法分析

    本文分析了CI框架中$this-&gt;load-&gt;library()的用法。分享给大家供大家参考,具体如下: 我第一次加载失败,原来是文件名和类名不同的原因,先总结关于CI加载你自己的类文件注意事项: 1.第三方加载文件应放在...

    CI框架中数据库操作函数$this-db-where()相关用法总结

    本文实例总结了CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法。分享给大家供大家参考,具体如下: CI 框架数据库操作函数 this-&gt;db-&gt;where...本函数与上面的那个几乎完全相同,唯一的区别是本函数生成的子句是用 O

    Java中this与super的区别

    Java中this与super的区别 this&super; 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。 Java关键字this只能用于方法的方法体内。当一个对象创建后, Java虚拟机(JVM)就...

    解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)

    主要介绍了解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等),解决方法是使用this.$forceUpdate()强制刷新,文章给大家分享了代码案例,需要的朋友参考下吧

    ThinkPHP中I(),U(),$this-post()等函数用法

    本文实例讲述了ThinkPHP中I(),U(),$this-&gt;post()等函数的用法。分享给大家供大家参考。具体方法如下: 在ThinkPHP中在控制器中接受表单的数据可以使用如下方法: 1、$_POST[]/$_GET[],但是这个接受的表单内容不会...

    【JavaScript源代码】Vue.set()和this.$set()使用和区别.docx

    Vue.set()和this.$set()使用和区别  在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新到视图上去; 当我们去看vue文档的时候,会发现有这么一句话...

    PHP微信支付WxPayPubHelper

    //使用证书:cert 与 key 分别属于两个.pem文件 //默认格式为PEM,可以注释 curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLCERT, WxPayConf_pub::SSLCERT_PATH); //默认格式为PEM,...

    jquery $(this).attr $(this).val方法使用介绍

    $(this).attr(key); 获取节点属性名的值,相当于getAttribute(key)方法 $(this).attr(key, value); 设置节点属性的值,相当于setAttribute(key,value)方法 eg:”w_1″ class=”widget” diywidgetid=”${template....

    mysql的完整数据库连接PHP类库

    $this-&gt;conn = mysql_pconnect($this-&gt;db_host, $this-&gt;db_user, $this-&gt;db_pwd); } else { //即使链接 $this-&gt;conn = mysql_connect($this-&gt;db_host, $this-&gt;db_user, $this-&gt;db_pwd); } if (!mysql_...

    php面向对象全攻略 (三)特殊的引用“$this”的使用

    7.特殊的引用“$this”的使用 现在我们知道了如何访问对象中的成员,是通过“对象-&gt;成员”的方式访问的,这是在对 象的外部去访问对象中成员的形式,那么如果我想在对象的内部,让对象里的方法访问本对 象的属性,...

    php截取字符串的类.zip

     $this-&gt;start_pos = strpos($this-&gt;str, $this-&gt;start_str) strlen($this-&gt;start_str);  $this-&gt;end_pos = strpos($this-&gt;str, $this-&gt;end_str);  $this-&gt;c_str_l = $this-&gt;end_pos - $this-&gt;start...

    php类中的$this,static,final,const,self这几个关键字使用方法

     $this表示当前实例,在类的内部方法访问未声明为const及static的属性时,使用$this-&gt;value=’phpernote’;的形式。常见用法如:  $this-&gt;属性  $this-&gt;方法  举例如下: &lt;?php class MyClass{ private ...

    qqwry.datIP地址信息

    //ip2long将IP地址转成无符号的长整型,也可以用来验证IP地址 return pack('N', intval(ip2long($ip))); } function getstring($data = "") { $char = fread($this-&gt;fp, 1); while (ord($char) &gt; 0) { //ord...

Global site tag (gtag.js) - Google Analytics