javascript - 如何通过 div.innerHTML 从 JSON 输入中动态设置数据样式?
问题描述
我目前正在使用 JS 从 JSON 文件中获取数据并循环通过它以显示在网站上,附加到 html 文件中的 div 即
<div id = "groceries"></div>
JS代码(跳过可以正常工作的获取代码):
function appendData (data) {
const mainContainer = document.getElementById ('groceries');
for (let i = 0; i < data.length; i++) {
const div = document.createElement ('div');
div.innerHTML = '<b>' + data[i].item + '</b> x' + data[i].quantity + ' ' + data[i].calories + '<b> - ' + data[i].rating + '<br><br>';
mainContainer.appendChild (div);
}
}
“评级”数据需要根据评级设置样式,即绿色代表“低”,琥珀色代表“中”,红色代表“高”……基于 JSON 文件中的内容。
但是,我不确定如何使用纯 JS / html / css 来做到这一点?我已经尝试过四处搜索,但要找到合适的答案非常困难。
解决方案
根据评分值添加一个类。阿卡
function appendData(data) {
const mainContainer = document.getElementById ('groceries');
for (let i = 0; i < data.length; i++) {
const div = document.createElement ('div');
div.classList.add('rating', 'rating--' + (data.rating < 3 ? 'low' : data.rating > 6 ? 'high' : 'med'));
div.innerHTML = '<b>' + data[i].item + '</b> x' + data[i].quantity + ' ' + data[i].calories + '<b> - ' + data[i].rating + '<br><br>';
mainContainer.appendChild (div);
}
}
然后在CSS中你可以简单地做
.rating {
// Generic styling
}
.rating.rating--low {
color: #FF0000;
// Unique Styles
}
.rating.rating--med {
color: #FFFF00;
// Unique Styles
}
.rating.rating--high {
color: #00FF00;
// Unique Styles
}
推荐阅读
- node.js - 以管理员节点 JS 身份运行命令行
- c - 我可以在结束后保存(并使用)传递给函数的 char* 文字吗?
- javascript - Nodejs websocket客户端,接收多条消息
- javascript - 如何在选择后为另一个 id 显示一个值
- python - 如何在 Jupyter(IPython,rpy2)中获得交互式 R 输出,例如用于进度条?
- json - 如何使用 Rest-assured 在 POST 方法的正文中发送嵌套的 JSON
- divi-theme - 在 php 页面上包含 divi 部分
- reactjs - 如何在无状态组件中有条件地更新状态?
- variables - 在汇编中声明 16 位内存变量
- php - 有什么方法可以在 PHP 中保持视频流处于活动状态?