You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过event.target选择事件目标的同级div.effect元素?

解决方案

你提到的document.querySelector(event.target + " + .effect")写法不可行,因为event.target是DOM元素对象,不是字符串,无法直接和选择器字符串拼接。以下是仅通过event.target获取同级.effect元素的几种可靠方法:

  • 利用兄弟元素关系(适合固定DOM结构)
    由于在你的HTML里,按钮是.effect的下一个兄弟元素,直接使用previousElementSibling就能拿到目标元素:

    const effectEl = event.target.previousElementSibling;
    

    注意:如果后续DOM结构调整(比如按钮和.effect之间插入了其他元素),这种方法会失效。

  • 通过父节点查询(更健壮的方案)
    先获取按钮的父容器.item,再在容器内查询.effect元素,这种方法不受兄弟元素顺序或中间插入元素的影响:

    const effectEl = event.target.parentNode.querySelector('.effect');
    
  • 用closest定位父容器(兼容复杂嵌套场景)
    如果未来.item的嵌套层级可能变化,还可以用closest先精准定位到父容器,再查询目标元素:

    const effectEl = event.target.closest('.item').querySelector('.effect');
    

以上三种方法均仅依赖event.target,不需要给元素添加ID、自定义属性或其他变通方案,完全符合你的需求。

内容的提问来源于stack exchange,提问作者galalem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 21:12:27