我的代码看起来像这样:
<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>