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

Angular中点击div时如何获取并传递对应div的ID值

Angular实现点击div获取对应ID的最佳方案

Angular中不推荐使用getElementById这类原生DOM操作获取标识,优先通过数据绑定或事件传参的方式实现,以下是3种常用实现方式:

  • 方案1:直接显式传递ID(最直观,适合静态div场景)
    直接给每个div设置ID,点击时把ID作为参数传入函数即可,无需操作事件对象:
    <!-- 模板代码 -->
    <div (click)="ToBank('div1')"></div>
    <div (click)="ToBank('div2')"></div>
    <div (click)="ToBank('div3')"></div>
    
    // 组件逻辑代码
    ToBank(divId: string) {
      // 直接获取到点击的div ID
      console.log('当前点击的div ID:', divId);
    }
    
  • 方案2:通过事件对象获取ID(适合不想手动传参的场景)
    注意模板中要传入$event而不是自定义的e变量:
    <!-- 模板代码,给每个div设置对应ID -->
    <div id="div1" (click)="ToBank($event)"></div>
    <div id="div2" (click)="ToBank($event)"></div>
    <div id="div3" (click)="ToBank($event)"></div>
    
    // 组件逻辑代码
    ToBank(event: MouseEvent) {
      // 使用currentTarget可以避免div内部有子元素时target指向子元素的问题
      const targetDiv = event.currentTarget as HTMLElement;
      const divId = targetDiv.id;
      console.log('当前点击的div ID:', divId);
    }
    
  • 方案3:循环生成div(适合div数量多、动态生成的场景)
    把所有ID存到数组中,通过*ngFor循环渲染div,不用重复写冗余代码:
    // 组件逻辑代码中先定义ID列表
    divIdList: string[] = ['div1', 'div2', 'div3'];
    
    <!-- 模板代码循环渲染 -->
    <div 
      *ngFor="let divId of divIdList"
      [id]="divId"
      (click)="ToBank(divId)"
    ></div>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:24:02