首页 > 解决方案 > 单击子元素时捕获 event.target 的正确方法

问题描述

我想在单击锚点时调用 javascript 函数并捕获元素的 href 和 title 属性。如果元素的内容是纯文本,我的代码可以正常工作,但是当我在锚标签内引入新元素(例如标签和图标)时,e.target 现在是标签或图标,因此我无法再获取 href 属性。

我可以编写一些代码来检查元素类型,如果它不是锚找到父元素,但我想知道即使单击子元素,我的函数是否有更好的方法从 event.target 获取锚元素?

function doStuff(e) {
  console.log(e.target.getAttribute("href"));
  console.log(e.target.getAttribute("title"));
  e.preventDefault();
}
<a href="/bob" title="Bob" onClick="doStuff(event)">
  <i class='fa fa-user'></i>
  <label>Bob</label>
</a>

标签: javascript

解决方案


您可以使用event.currentTarget,它应该为您提供绑定事件的锚元素


推荐阅读