【问题标题】:$(this) vs this in jQuery$(this) 与 jQuery 中的 this
【发布时间】:2010-08-03 19:21:34
【问题描述】:

jQuery 中的$(this)this 有什么区别?这里有两种不同的用法:

 $(document).ready(function() {
   $("#orderedlist").find("li").each(function(i) {
     $(this).append( " BAM! " + i );
   });
 });


 $(document).ready(function() {
   // use this to reset several forms at once
   $("#reset").click(function() {
     $("form").each(function() {
       this.reset();
     });
   });
 });

【问题讨论】:

    标签: jquery


    【解决方案1】:

    “this”变量指的是(例如您提供的事件处理程序)一个 DOM 元素。因此 $(this) 是一个只包含一个 DOM 元素的 jQuery 对象。

    当原生 DOM API 足够时,你应该使用普通的“this”,当你需要 jQuery 的帮助时,你应该使用 $(this)。你的第二个例子是一个很好的例子;另一种可能是您只需要元素的“id”或“name”。

    【讨论】:

      【解决方案2】:

      不同之处在于this 本身是对事件所作用的dom 对象的引用。 $(this) 正在从该 dom 对象创建一个 jquery 对象。

      编辑:因此,使用 DOM 对象,您将无法访问所有 jquery 添加的功能,而只能访问 dom 允许的功能。基本上,您可以将this 本身视为与document.getElementById(id) 相同

      【讨论】:

      • "this 本身就是对事件作用的dom对象的引用",迄今为止了解this的最漂亮的定义,大拇指哥们:)!
      【解决方案3】:

      $(this) 是一个 jquery 对象,而this 指的是本机 dom 对象

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-22
        • 2022-01-23
        • 2011-04-07
        • 1970-01-01
        • 2019-06-03
        • 1970-01-01
        • 1970-01-01
        • 2017-06-23
        相关资源
        最近更新 更多