angular - 当元素确实存在时,Angular 6 TypeScript getElementById 返回 null
问题描述
有谁知道为什么document.getElementById("startDateText")
会从下面的段落元素返回 null,但是如果我将该 id 移动到它上面的元素,它会返回我期望的结果?
Typescript 代码是从按钮触发的,而不是嵌入在 HTML 中的 javascript。
<p class="card-text text-secondary">Start Date and Time</p>
<p *ngIf="!isDates" class="card-text text-secondary" id="startDateText" >{{ Detail$?.StartDateTime | date:"MM/dd/yyyy 'at' h:mma" }}</p>
打字稿:
const myElement: HTMLElement = document.getElementById("startDateText");
myElement.innerHTML =this.eventDetail$.StartDateTime;
解决方案
ngIf
不仅会“隐藏”元素,还会将其从 中删除DOM
,因此如果isDates==true
.
建议:
你可以[class.hidden]="!isDates"
改用。隐藏类是两个样式属性 :visibility=0
和的组合display:None
,因此元素将保留在 dom 中,但不会被渲染。
推荐阅读
- c++ - 将对象向量与 int 类型的向量进行比较
- c# - RestSharp 不反序列化所有值
- reactjs - 属性名称预期的字符串类型,但得到空的 apollo-codegen 错误
- linux - 点燃服务启动失败但ansible任务没有失败
- kubernetes - 当数据进入模板更改时如何刷新div
- firebase - Firebase Cloud Messaging 无法在 Android Studio 模拟器上运行
- c - 在 C 中,如何将一个地址的值设置为另一个地址的值?
- github - 获取与拉取请求表单 github api v3 关联的链接问题和项目
- sql - Postgres 根据某些条件设置最终值
- gdb - gdb 7.12.1-48.el7 请求“debuginfo-install”但这些软件包已经安装?