打印十个a标签的下标(个人笔记)

问题描述:创建10个a标签,点击每个弹出对应的序号。
笨方法:写十个a标签,监听获取目标值的innerHTML

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>document</title>
  </head>
  <body>
    <div>
      <a href="">1</a>
      <a href="">2</a>
      <a href="">3</a>
      <a href="">4</a>
      <a href="">5</a>
      <a href="">6</a>
      <a href="">7</a>
      <a href="">8</a>
      <a href="">9</a>
      <a href="">10</a>
    </div>
    <script>
      var btn = document.getElementsByTagName('div')[0];
      btn.addEventListener('click', function(e) {
          e.preventDefault();
          // console.log(e.target); //返回具体a元素
          // console.log(e.currentTarget); //返回整个div元素,包括所有的a元素
          console.log(e.target.innerHTML)
      })
  
    </script>
  </body>
</html>

1、不要忘记使用e.preventDefault()来阻止a标签的默认行为,不然会默认跳转,导致控制台输出结果闪退

2、要记得getElementsByTagName返回的是一个集合,即使只有一个元素,也要加上明确的下标[0]。而addEventListener()用于像指定元素添加事件句柄。

9月8日更新
上周字节面试,被面试官指出了问题,当div这个父盒子有宽高后,如果点击了空白的地方会怎么样?
结果:输出div的全部子元素
在这里插入图片描述

针对该问题,先判断触发元素是谁再输出innerHTML的内容,如下

<script>
      var btn = document.getElementsByTagName('div')[0];
      btn.addEventListener('click', function(e) {
          e.preventDefault();
          // console.log(e.target); //返回具体a元素
          // console.log(e.currentTarget); //返回整个div元素,包括所有的a元素
          if (e.target.nodeName == 'A') {
            console.log(e.target.innerHTML)
          }
      })
    </script>

注意:nodeName节点的值是大写的标签名

console.dir(e.target);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值