Javascript 如何获取调用事件处理程序的当前HTML元素

Javascript 如何获取调用事件处理程序的当前HTML元素,javascript,jquery,Javascript,Jquery,如何在我正在连接的事件处理程序中获取对HTMLDOM元素的引用 var dashboard = { WireHandlers : function() { $(".approveButton") .unbind("click") .click(dashboard.approve) }, approve : function() {

如何在我正在连接的事件处理程序中获取对HTMLDOM元素的引用

var dashboard =
    {
        WireHandlers : function()
        {
          $(".approveButton")
            .unbind("click")
            .click(dashboard.approve)
        },

        approve : function()
        {
          // In here, I would like a reference
          // to the HTML DOM element that was clicked

          // Also, I would like its id
        }
    }

只需将一个参数添加到
approve
函数(通常称为
event
)中,并对其调用
currentTarget

approve : function(event) {
  // In here, I would like a reference
  // to the HTML DOM element that was clicked
  event.currentTarget

  // Also, I would like its id
  event.currentTarget.id
}
请注意,您还可以在
approve
方法中使用
this
来引用单击的元素

approve : function() {
  this // or $(this) if you want to use jQuery
}


请注意,在这种情况下,
target
currentTarget
可以互换。但是,在更复杂的情况下,.

只需向
approve
函数(通常命名为
event
)添加一个参数,然后调用
currentTarget

approve : function(event) {
  // In here, I would like a reference
  // to the HTML DOM element that was clicked
  event.currentTarget

  // Also, I would like its id
  event.currentTarget.id
}
请注意,您还可以在
approve
方法中使用
this
来引用单击的元素

approve : function() {
  this // or $(this) if you want to use jQuery
}

请注意,在这种情况下,
target
currentTarget
可以互换。但是,在更复杂的场景中

是jQuery元素(
这是DOM元素)

不会绑定到
仪表板
(因为您只是提供回调函数,所以必须使用例如
仪表板.wireHandler

是jQuery元素(
这是DOM元素)


不会绑定到
仪表板
(因为您只是提供回调函数,所以必须使用例如
仪表板.WireHandlers

来自jquery文档:

您可以通过“this”变量访问acted-On元素:

  approve : function()
        {
          var elem = this;
          var id = elem.id;
        }

从以下jquery文档:

您可以通过“this”变量访问acted-On元素:

  approve : function()
        {
          var elem = this;
          var id = elem.id;
        }

非常感谢。:-)我也为你的第二个问题添加了答案(
id
)。非常感谢。:-)我也为你的第二个问题添加了答案(
id
)。非常感谢。:-)事实上,我更喜欢你的答案,因为它是jQuery,而且更简短,更甜美,但我将另一个答案标记为正确答案,因为这也是正确答案,而且它来得更早。我希望我能将多个答案标记为正确答案。我会将这一部分添加到我的答案中,以便人们获得完整答案。非常感谢。:-)事实上,我更喜欢你的答案,因为它是jQuery,而且更简短,更甜美,但我将另一个答案标记为正确答案,因为这也是正确答案,而且它来得更早。我希望我能将多个答案标记为正确答案。我会将这一部分添加到我的答案中,这样人们就可以得到完整的答案。请看