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

如何在HTML代码中为HTML元素的id设置变量值?

在Angular中绑定变量作为HTML元素的ID属性值

在Angular里要把变量值设为元素的id,需要使用属性绑定语法(用方括号[]包裹属性名),Angular会自动解析变量并将其值赋值给对应属性。

1. 普通变量的情况(比如counter)

如果counter是组件类中定义的变量,直接通过[id]绑定即可:

<input [id]="counter" type="text" mozactionhint="next" name="sometext" />

要是需要给ID添加前缀避免重复,还可以拼接字符串:

<input [id]="'input-' + counter" type="text" mozactionhint="next" name="sometext" />

2. *ngFor循环中使用索引i的情况

在*ngFor循环里已经通过index as i获取了索引,同样用属性绑定把i赋值给id:

<table>
  <tbody>
    <tr *ngIf="currentNode?.parameters.length != 0">
      <td align="center">Type</td>
      <td align="center">Key</td>
      <td align="center">Value</td>
    </tr>
    <tr *ngFor="let item of getParametersWithoutName(); index as i;">
      <td>
        <select>
          <option>One-line</option>
          <option>Multiline</option>
        </select>
      </td>
      <td><input [id]="i" [ngModel]="item.name" (ngModelChange)="item.name = $event"/></td>
      <td><input [ngModel]="item.value" (ngModelChange)="item.value = $event"/></td>
    </tr>
  </tbody>
</table>

也可以给ID加语义化前缀:

<input [id]="'key-input-' + i" [ngModel]="item.name" (ngModelChange)="item.name = $event"/>

注意事项

  • 不要直接用双引号包裹变量(比如id="i"),这种写法Angular会把它当作字符串字面量,不会解析变量值。
  • 如果变量可能为null或undefined,可以添加空值处理,比如[id]="i ?? 'default-id'",避免生成无效ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:51:21