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

如何用JavaScript获取点击元素的子元素文本(动态DOM场景)

原生JavaScript实现动态DOM下获取对应.box的颜色文本

你只需要在找到.btn元素后,通过closest()方法定位到它所在的.box容器,再在容器内查询h1元素获取颜色文本即可。修改后的代码如下:

document.addEventListener("click", function(e){
    const CTABtn = e.target.closest(".btn"); 

    if(CTABtn){
      // 找到按钮所在的.box容器
      const box = CTABtn.closest(".box");
      // 在.box内找到h1元素并获取文本内容
      const colorText = box.querySelector("h1").textContent.trim();
      alert(colorText);
    }
});

完整可运行代码示例

<div class="container">
  <div class="box">
    <div>
      <h1>Red</h1>
    </div>
    <div>
      <button class="btn">CTA</button>
    </div>
  </div>
  <div class="box">
    <div>
      <h1>Green</h1>
    </div>
    <div>
      <button class="btn">CTA</button>
    </div>
  </div>
<div class="box">
    <div>
      <h1>Blue</h1>
    </div>
    <div>
      <button class="btn">Blue</button>
    </div>
  </div>
</div>

<style>
.container{
   display:flex;
   flex-wrap:wrap;
   justify-content:space-evenly;
}
.box{
   border:1px solid black;
   padding:5px;
}
</style>

<script>
document.addEventListener("click", function(e){
    const CTABtn = e.target.closest(".btn"); 

    if(CTABtn){
      const box = CTABtn.closest(".box");
      const colorText = box.querySelector("h1").textContent.trim();
      alert(colorText);
    }
});
</script>

关键逻辑说明

  • closest(".box"):从点击的按钮元素向上遍历DOM树,找到最近的.box父容器,动态生成的DOM也能正常匹配
  • querySelector("h1"):在.box容器范围内定位存储颜色文本的h1元素
  • textContent.trim():获取h1的文本内容并去除首尾空白字符,保证内容整洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 00:02:41