事件委托如何获取子元素

<div slot="rightTab" class="rightTab" @click="rightClick($event)">
   <span class="ydqxBtn one" :class="{ activeBtn: activeBtn == 1 }"
   >年</span>
   <span class="fenge">|</span>
   <span class="ydqxBtn two" :class="{ activeBtn: activeBtn == 2 }"
   >月</span>
   <span class="fenge">|</span>
   <spanclass="ydqxBtn three" :class="{ activeBtn: activeBtn == 3 }"
   >日</span>
 </div>
console.log(e.target.innerHTML)//目标的文本
      console.log(e.target.tagName)//目标的标签名
      console.log(e.target.nodeName)//目标的节点名
      console.log(e.target.id)//目标的id(标签不设置为空)
      console.log(e.target.className)//目标的类名(标签不设置为空))
      console.log(e.target.childNode)//目标的子节点
      console.log(e.target.parentNode)//目标的父节点

事件委托所有子元素都会触发点击事件,所以给需要监听的元素设置一个相同的类名或者相同的标签,先判断点击的元素是否为需要触发事件的标签。然后再进行相应的判断

methods: {
          
   
    rightClick(e) {
          
   
      let className = e.target.className;
      if (className.indexOf("ydqxBtn") > -1) {
          
   
        console.log(className);
        let flag =
          className.indexOf("one") > -1
            ? 1
            : className.indexOf("two") > -1
            ? 2
            : 3;
        this.activeBtn = flag;
      }
    },
  },
经验分享 程序员 微信小程序 职场和发展