`
frank1998819
  • 浏览: 758583 次
  • 性别: 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);
});

 

 

 

 

分享到:
评论

相关推荐

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

    js原生态函数中使用jQuery中的$(this)无效的解决方法 在JavaScript开发中,使用jQuery的$(this)在原生态函数中可能会出现无效的问题,本文将对此进行详细的分析和解决方法的介绍。 一、问题描述 在JavaScript开发...

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

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

    PHP5中的this self和parent关键字详解

    ### PHP5中的this、self与parent关键字详解 在PHP编程语言中,`this`、`self`和`parent`这三个关键字对于理解类的内部工作原理以及如何在继承中正确使用类成员至关重要。下面将详细解释这三个关键字的意义及其用法...

    thinkphp5通过上传字段和关系自动生成sql

    list ( $where, $sort, $order, $offset, $limit ) = $this-&gt;mybuildparams (null,null,$aliaField,"tableName"); $total = $this-&gt;model-&gt;where ( $where )-&gt;order ( $sort, $order )-&gt;count (); $list = $this-&gt;...

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

    PHP中的$this和$that是与对象相关的指针,它们在对象的使用中扮演着重要角色。$this指针在对象的实例方法中使用,指向调用该方法的对象本身,而$that则通常在对象的克隆操作中用到,指向被克隆的原始对象。在PHP5中...

    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指向该组件实例 ...

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

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

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

    这两种方法的使用场景和区别如下: 1. **Vue.set()**: - 可以用来修改Vue实例根级别的数据,也可以用于嵌套对象的属性。例如: ```javascript const app = new Vue({ data: { a: 1, info: { name: '小明' ...

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

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

    $this-是什么意思

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

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

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

    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[],但是这个接受的表单内容不会...

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

    在CodeIgniter (CI) 框架中,`$this-&gt;load-&gt;library()` 是一个非常重要的函数,用于加载框架内的库(library)文件。这个函数使得开发者能够方便地引入自定义或内置的库,扩展CI的功能。下面将详细解析 `$this-&gt;load...

    深入php self与$this的详解

    总结一下,`self` 和 `$this` 的主要区别在于: 1. `self` 用于访问类的静态成员和常量,而 `$this` 用于访问对象的实例成员。 2. `self` 总是指向定义它的类,不受对象实例的影响;`$this` 总是指向调用成员的具体...

    PHP微信支付WxPayPubHelper

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

Global site tag (gtag.js) - Google Analytics