我有一个函数populateNames(),它循环使用jsonObjects中的所有名称。 在jsonObjects中,我有一个值(警报),即true或false。 知道我希望能够显示jsonObjects中的所有名称,如果jsonObjects name alarm为true,则输出红色名称,如果jsonObjects name alarm为false,则输出绿色名称。
function populateNames() {
for(i = 0; i < jsonObjects.length; i++) {
if(availableNames.indexOf(jsonObjects[i].name) < 0) {
availableNames.push(jsonObjects[i].name);
$("#chan").append('<li><a href="#">' + jsonObjects[i].name + '</a></li>');
}
}
}
在if语句中我测试的是这样的:
if(jsonObjects[i].alarm == true) {
$("#chan").html('<li><a href="#"></a></li>');
}
else {
$("#chan").html('<li><a href="#"></a></li>');
}
答案 0 :(得分:1)
试试这段代码
function populateNames() {
var color = "green";
for (i = 0; i < jsonObjects.length; i++) {
if (jsonObjects[i].alarm == true) {
color = "red";
}
else {
color = "green";
}
if (availableNames.indexOf(jsonObjects[i].name) < 0) {
availableNames.push(jsonObjects[i].name);
$("#chan").append('<li><a style:"color=' + color + ';" href="#">' + jsonObjects[i].name + '</a></li>');
}
}
}
答案 1 :(得分:0)
如果alarm属性是一个对象或字符串,你的条件仍然会返回true,所以最好按如下方式修改它:
jsonObjects[i].alarm.toString() == "true"
至于颜色,你可以这样做:
$("#chan").html('<li><a href="#" style="color: '+ (jsonObjects[i].alarm.toString() == "true")? "#FF0000" : "#00FF00" +'"></a></li>');