需要获取第一个子项a并创建一个具有结果的单击事件

Need to get first child a and create a click event with the result

本文关键字:一个 结果 事件 单击 第一个 获取 创建      更新时间:2023-09-26

我正在尝试创建一个JavaScript程序,该程序通过DOM查找第一个不是mailto:<a href>,它需要是一个"真实链接"并返回href值。然后,我需要创建一个带有结果的click事件。

我需要的是一个HTML,它封装了一篇文章的作者内容。这需要是可点击的,但不需要在标记中使用onclick。它需要是一个在HTML标记中不可见的事件。

包装section也应该是可点击的,但不受我上面描述的任何事情的影响。

标记是这样的:

<section>
  <figure>
    <img>
  </figure>
  <div>
    <h2>
    <p>
      <a href="mailto:.."></a>
      <a href="THE VALUE I NEED"></a>
    </p>
  </div>
</section>

/*编辑*/

OK找到了这个。

function (a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,a‌​rguments):b}

这是我在FireBug的事件窗口中从我试图获取此函数的站点中获得的字符串。有人明白吗?这根绳子是它工作的原因。我刚刚复制了整个js,它在我的网站上运行,但我想隔离这个特定的函数,因为原始文件很大。任何人

http://jsfiddle.net/LrgQH/

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应该可以在任何地方使用。

编辑:

http://jsfiddle.net/LrgQH/2/

这应该可以做到,你必须阻止其他链接工作,但它变得越来越复杂。请记住,在Javascript中,事件系统是通过冒泡来工作的。最深的对象会得到点击事件,然后如果它能处理它,它就会处理它。在处理事件时,它可以防止它走得更远,事件不会进一步传播。如果它决定不阻止事件,它将转到父元素,依此类推,直到到达HTML元素。

如果元素无法处理事件,它将自动转到父级,直到If找到一个可以处理该事件的元素。如果没有任何元素能够处理该事件,那么它将不会被处理。我建议你在w3c网站上阅读更多关于它的信息。

http://www.w3schools.com/

我相信你要问的是,你不知道第一个anchorTag链接是什么,它可能是任何值,但它会返回href值。这是代码:

 <script>
let a = document.querySelectorAll("a");
for(i=0; i < a.length; i++){
if(i==0){
 console.log(a[i].href);
["touchstart","mousedown"].forEach(e=>{
a[I].addEventListener(e,()=>{
alert(a[I]);
});
});
}
}
</script>