代码之家  ›  专栏  ›  技术社区  ›  Dónal

jQuery绑定的事件处理程序

  •  0
  • Dónal  · 技术社区  · 16 年前

    我想使用将“click”事件处理程序附加到ID为“foo”的元素的第一个子元素 jQuery . 我理解这样做的语法是:

    $('#foo:first-child').bind('click', function(event) {
        // I want to access the first child here
    })
    

    在处理程序主体中,我希望访问导致事件被激发的元素。我在某个地方读到过,你不能简单地通过“this”来引用它,那么我该如何访问它呢?

    4 回复  |  直到 11 年前
        1
  •  0
  •   Peter Mortensen Absinthe    11 年前

    用“这个”就行了:

    $('#foo:first-child').bind('click', function(event) {
      alert(this === $('#foo:first-child')); // True
      this.style.color = "red"; // First child now has red text.
    })
    
        2
  •  2
  •   Owen Ryan Doherty    16 年前
    $(this).doStuff()
    
        3
  •  2
  •   Svante Svenson    16 年前

    忘记你在某个地方读到的内容,继续使用这个关键字:

    $("#foo:first-child").click(function(event) {
      $(this).css("background", "pink");
    });
    
        4
  •  2
  •   Community Artem    7 年前

    只是为了增加 Greg's reply 一个小小的修正是:

     this === $('#foo:first-child') // returns false
     $(this) === $('#foo:first-child') // returns true
    

    this 引用HTML元素本身,以及 $(this) 只需将其转换为jquery元素。