我需要将字符串替换为 HTML 标记并具有 id 属性。这是我的代码,TS 文件:let content = "this is a car.";content.replace(new RegExp('car'), match => { return `<span class="highlight-text" id="car"> + match +</span>`;});<div [innerHTML]="content"></div>在检查元素时它仅显示类,<div> <span class="highlight-text">car</span></div>为什么它没有在span标签中添加ID属性?
2 回答
倚天杖
TA贡献1828条经验 获得超3个赞
id 字段在 DOM 清理过程中被 Angular 消除。要在innerHTML中添加id字段,您必须明确告诉Angular,解析此HTML内容是安全的。您可以通过以下方式实现:
let oldContent = "this is a car.";
oldContent.replace(new RegExp('car'), match => {
return `<span class="highlight-text" id="car"> + match +</span>`;
});
let content = this.sanitizer.bypassSecurityTrustHtml(content)
其中,sanitizer 是 DOMSanitizer 的实例,应将其注入构造函数中。
constructor(private sanitizer: DomSanitizer) { }
哔哔one
TA贡献1854条经验 获得超8个赞
替换返回修改后的内容。
let content = "this is a car.";
content = content.replace(new RegExp('car'), match => {
return `<span class="highlight-text" id="car">${match}</span>`;
});
console.log(content)
添加回答
举报
0/150
提交
取消