【发布时间】:2018-10-16 22:07:19
【问题描述】:
有谁知道为什么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="!isDates"你能把它删掉再试一次吗?ngIf不仅会“隐藏”元素,还会将其从 dom 中移除,因此如果isDates是true,您将无法访问它。但是,可能还有别的东西。 -
是的,当我删除 ngIf 时它会找到元素,我想我需要更改我的显示方式,谢谢
-
您可以改用
[class.hidden]="!isDates"。隐藏类是visibility=0和display:None这两个样式属性的组合,所以元素会保留在dom中,但不会被渲染。 -
或者你可以使用 [attr.hidden]
标签: angular html typescript