如何获取锚标记的事件目标

How to get event.target of anchor tag?

本文关键字:事件 目标 何获取 获取      更新时间:2023-09-26

我正在尝试获取点击链接的event.target。我已经将其中一个锚标签包裹在这样的图像周围:

$("a").click(function(event) {
  alert(event.target);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#link1">link 1</a>
<br/>
<a href="#link2">
  <img src="http://maxcdn.thedesigninspiration.com/wp-content/uploads/2013/10/Despicable-Me-Minions-014.jpg">
</a> <!-- anchor tag wrapped around img -->

在这里,在"链接 1"(单击时)的情况下,我得到所需的值(即 "http://stacksnippets.net/js#link1" )。但是,在图像的情况下(当它被点击时),我得到"Object HTMLImageElement"。单击图像时如何获取"http://stacksnippets.net/js#link2"值?

编辑:

当单击图像时,我需要获得"http://stacksnippets.net/js#link2",类似于"link1"情况下的"http://stacksnippets.net/js#link1"

作为 this 的替代,您可以使用event.currentTarget

标识事件的当前目标,因为事件遍历 DOM。它始终引用事件处理程序已附加到的元素,而不是标识发生事件的元素的event.target

可以使用

this始终获取定位点,因为这是事件处理程序中的目标元素。 event.target获取启动事件的元素,在本例中为图像

$("a").click(function() {
    console.log( this );
});

旁注:alert不是调试工具!

你可以试试这种方式:

$("a").click(function(event) {
  alert($(this).attr('href'));
});

下面是您的请求 usig JSFiddle 的工作示例。