Javascript 如何从子标签中删除href

Javascript 如何从子标签中删除href,javascript,jquery,html,Javascript,Jquery,Html,我有以下代码结构,在获取href的值时遇到困难 <div class=""> <div class=""> <div class=""> <a href=""><img src=""></a> </div> </div> </div> ev.target.getAttribute(“href”)ev.target.parentNode.getAtt

我有以下代码结构,在获取href的值时遇到困难

<div class="">
  <div class="">
    <div class="">
      <a href=""><img src=""></a>
    </div>
  </div>
</div>

ev.target.getAttribute(“href”)ev.target.parentNode.getAttribute(“href”)不工作


我应该提到,包装在a标记中的img标记也有一个悬停状态。我想单击图像,获取href,防止默认行为并触发其他一些事情。

我尝试它是否正常工作

JavaScript:

document.getElementById("link").addEventListener("click", function(event){
document.getElementById("result").innerHTML = event.target.getAttribute("href");
});
HTML:


例如:


如果我误解了你的意思,你能给我完整的代码示例吗,你使用的是什么浏览器,谢谢。

你可以使用事件的“this”变量

document.getElementById(“attr1”).addEventListener(“单击”,函数(ev){
ev.preventDefault();
警报(this.getAttribute(“href”);
警报(this.href);
});

因为您没有在
addEventListener
上指定任何事件,所以我假设了一个类似
mouseenter
的事件。我假设锚定标记
a
是应用程序中的第一个锚定标记

请找到工作演示

HTML:

<div class="">
    <div class="">
        <div class="">
            <a href="\something">This is a link</a>
        </div>
    </div>
</div>
var a = document.getElementsByTagName('a')[0].href;
console.log('Href of \'a\' at load = ' + a);

document.getElementsByTagName('a')[0].addEventListener('mouseenter', function () { /*event can be any other like 'click', 'mouseout', etc.*/
    console.log('Href of \'a\' on an event = ' + this);
});

这件事和什么有关?前后发生了什么?比如
whatishere.addEventListener('whatishere',function(){})
。他说这是一个
点击事件在哪里?你的第一个链接指向一个空答案。您应该在答案中发布代码,而不仅仅是一个指向jsbin的链接。感谢您的建议是否可能因为包装在a标记中的img上有一个悬停状态而导致preventDefault停止工作?
var a = document.getElementsByTagName('a')[0].href;
console.log('Href of \'a\' at load = ' + a);

document.getElementsByTagName('a')[0].addEventListener('mouseenter', function () { /*event can be any other like 'click', 'mouseout', etc.*/
    console.log('Href of \'a\' on an event = ' + this);
});