繁体   English   中英

通过getElementById以编程方式单击mat-checkbox

[英]Click mat-checkbox programmatically by getElementById

我想在ngAfterContentInit()中触发click事件。

运行下面的代码,我得到了错误:

ERROR TypeError: Cannot read property 'click' of null

由于我使用NgFor打印出所有mat-checkbox,

恐怕我无法使用ViewChild方法来实现我的目的。

零件:

<div *ngFor="let item of NationlityList.NationlityList; let i = index">
  <div *ngIf="i % 6 == 0" class="row">
      <mat-checkbox id="{{'Id'+i}}" *ngIf="i + 0 < NationlityList.NationlityList.length" (change)="onCheckboxChecked($event, NationlityList.NationlityList[i].Nationality)"> {{ NationlityList.NationlityList[i].Nationality }} </mat-checkbox>
      <mat-checkbox id="{{'Id'+(i+1)}}" *ngIf="i + 1 < NationlityList.NationlityList.length" (change)="onCheckboxChecked($event, NationlityList.NationlityList[i+1].Nationality)"> {{ NationlityList.NationlityList[i+1].Nationality }} </mat-checkbox>
  </div>
</div>

TS:

ngAfterContentInit() {
if (this.passedData.SelectedNationlity[0] !== 'All') {
  let element: HTMLElement = document.getElementById('Id21');
  element.click();
  }
}

你可以这样做:

document.getElementById('checkboxID').setAttribute('checked','true')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM