我正在尝试创建一个JavaScript程序,通过DOM查找第一个<a href>
而不是mailto:
- 它需要是一个“真实链接”并返回{{1价值。然后我需要用结果创建一个href
事件。
我需要它的是一个HTML封装帖子的作者的东西。 这需要是可点击的 - 但不使用标记中的onclick。 它必须是一个事件 - 在HTML标记中不可见。
包装click
也应该是可点击的,但不会受到上述内容的影响。
标记是这样的:
section
/ *编辑* /
确定找到了这个。
<section>
<figure>
<img>
</figure>
<div>
<h2>
<p>
<a href="mailto:.."></a>
<a href="THE VALUE I NEED"></a>
</p>
</div>
</section>
这是我在FireBug的Event窗口中从我试图获取此功能的网站获得的字符串。有人理解这个吗?该字符串是它的工作原理。我刚刚复制了整个js,它可以在我的网站上运行。但我想隔离这个特定的功能,因为原始文件很大。任何人?
答案 0 :(得分:1)
var links = document.getElementsByTagName('a');
var link, i;
for(i=0; i<links.length; i++) {
link = links[i];
if (link.href.indexOf('mailto:') !== 0) {
break;
}
}
link.onclick = function(e) {
alert('allo');
}
Vanilla JS应该在任何地方工作。
这应该这样做,你必须阻止其他链接工作,但它变得复杂。请记住,在Javascript中,事件系统通过冒泡工作。最深的对象将获得click事件,然后如果它可以处理它,它将处理它。处理事件时,它可以防止事件进一步发生,事件不会进一步传播。如果它决定不阻止事件,它将转到父元素,依此类推,直到它到达HTML元素。
如果元素无法处理事件,它将自动转到父元素,直到找到一个可以处理事件的元素。如果没有元素可以处理事件,那么它将不会被处理。我建议你在w3c网站上阅读更多相关信息。