javascript - 模板文字写出 HTML 而不是 div 被呈现为 HTML
问题描述
这是我的整个脚本文件(baseURL 未显示),它在页面加载请求时返回 6 个对象(如果使用了 console.log(tabooObject),则可以验证)。
我的问题是它没有在我的页面上呈现 6 个 div(tabooObject),而只是用名称值写出的 HTML,而不是实际呈现的 div。换句话说,我看到:<div class="col"> <div class="name">Hey You!</div>...
在我的浏览器中。
const tabooWidget = document.querySelector('.taboo.widget'); //parent div
fetch(`${baseURL}`)
.then(response => response.json())
.then(data => {
for(let i = 0; i < data.list.length ; i++){
let name = data.list[i].name;
let tabooObject = `
<div class="col">
<div class="name">${name}</div>
</div>`;
tabooWidget.append(tabooObject);
}
})
.catch(error => console.error(error))
解决方案
let tabooObject = `
<div class="col">
<div class="name">${name}</div>
</div>`;
你里面tabooObject
有一个字符串。如果要将字符串添加为 HTML,则需要使用 innerHTML。
tabooWidget.innerHTML = tabooObject;
上面的代码替换了 tabooWidget 中的整个 HTML 代码。如果要附加代码,可以使用普通的旧字符串连接方式:tabooWidget.innerHTML += tabooObject;
推荐阅读
- docker - 如何在 tensorflow docker 镜像上安装特定版本
- sql-server - 如果数据是从表中更新的,则数据应插入到 SQL Server 2017 中的另一个表中
- android - Android写入csv文件,Uri.fromFile返回NullPointerException
- django - 删除 Django admin 多对多字段中的添加按钮
- css - 如何使下拉内容100%?
- python - NameError:名称“字符”未定义
- java - 工作中但在家中没有问题:mvn versions:display-dependency-updates
- node.js - ESLint 禁用带有模式的特定规则
- f# - 如何找到数组值等于数字 fsharp 的所有索引?
- salesforce - 在 Salesforce 的标准组件中覆盖 css