我正在尝试使用 json2html 格式化数据
数据如下:
var data = [
{'name':'Bob','level':1},
{'name':'Frank','level':2},
{'name':'Bill','level':3},
{'name':'Robert','level':1},
{'name':'Chen','level':3},
{'name':'Will','level':2}
];
变换如下:
var transform = {"tag":"div","class":"player","children":[
{"tag":"div","class":"p-name","html":"${name}"},
{"tag":"div","style":"background:yellow","class":"p-level","html":"${level}"}
]}
但我需要上面 div 的背景颜色根据级别进行着色,例如级别 1 - 黄色,级别 2 - 绿色,级别 3 - 红色。
最佳答案
简单..使用内联函数来设置样式
var transform = {"tag":"div","class":"player","children":[
{"tag":"div","class":"p-name","html":"${name}"},
{"tag":"div","style":function(){
var color;
switch(this.level) {
case 1: color = 'yellow';
case 2: color = 'green';
case 3: color = 'red';
};
return('background-color:' + color);
},"class":"p-level","html":"${level}"}
]};
或者最佳实践是设置类并在 css 中应用样式,如下所示
var transform = {"tag":"div","class":"player","children":[
{"tag":"div","class":"p-name","html":"${name}"},
{"tag":"div","class":"p-level color-level-${level}","html":"${level}"}
]};
.color-level-1 {background-color:yellow;}
.color-level-2 {background-color:green;}
.color-level-3 {background-color:red;}
关于json2html - 使用 json2html 基于数据值转换数据时如何应用不同的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25660023/