e.目标引用图像而不是<a>



我的代码看起来像这样:

<a href="someline">
<img src="img.jpg"/>
</a>

我的页面上都有代码,以获取链接,并获得这样的HREF:

e.target.href

问题是,当单击包含图像的链接时,e.target是图像本身而不是锚标签。我尝试将图像上的HREF设置为不良解决方案,但是e.target.href在图像上不确定。

我如何解决它,以便e.target将引用 <a>而不是图像。

我们确实需要查看更多代码,但是如果将处理程序连接到a元素,请使用e.currentTarget(或this)而不是e.target


如果不是(例如,您正在使用事件委托或其他内容),然后检查tagName并使用parentNode,直到找到a

var el = e.target;
while (el && el.tagName !== "A") {
    el = el.parentNode;
}
if (el) {
    console.log(el.href);
}

您可以将onclick事件连接到image并使用Node.parentelement以获取a父元素,就像您在代码中一样:

document.getElementById('myImage').onclick = function(e) {
  e.preventDefault();
  
  console.log(e.target.parentElement.href);
};
<a href="someline">
  <img id="myImage" src="https://placehold.it/350x150"/>
</a>

最新更新