小编Aur*_*ure的帖子

当event.target是HTMLImageElement时,如何获得锚点的href?

我想在点击时得到一个锚元素的href.我使用以下javascript代码:

document.addEventListener('click', function (event)
{
    event = event || window.event;
    var el = event.target || event.srcElement;

    if (el instanceof HTMLAnchorElement)
    {
        console.log(el.getAttribute('href'));
    }
}, true);
Run Code Online (Sandbox Code Playgroud)

这适用于嵌入式锚点,例如:

<div><p><a href='link'></a></p><div>
Run Code Online (Sandbox Code Playgroud)

但是当我使用锚点和图像时,它不起作用:

<div><a href='link'><img></a></div>
Run Code Online (Sandbox Code Playgroud)

event.target代替返回锚的形象.可以使用以下if案例修改javascript代码以解决此问题:

document.addEventListener('click', function (event)
{
    event = event || window.event;
    var el = event.target || event.srcElement;

    if (el instanceof HTMLImageElement)
    {
        // Using parentNode to get the image element parent - the anchor element.
        console.log(el.parentNode.getAttribute('href'));
    }
    else if (el instanceof HTMLAnchorElement)
    {
        console.log(el.getAttribute('href'));
    }
}, …
Run Code Online (Sandbox Code Playgroud)

javascript anchor events href

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

anchor ×1

events ×1

href ×1

javascript ×1