如果报警为真,则循环显示不同名称的真实对象名称?

时间:2014-02-26 09:00:04

标签: javascript html jsonobject

我有一个函数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>');
}

2 个答案:

答案 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>');