1

编辑:我正在为我的公司创建一个仪表板,显示我们所有的最新项目。我是应用程序开发团队的实习生。仪表板显示项目名称及其最新版本,以及这些版本的状态。

我正在使用在 SUCCESS、FAILURE、ERROR 和 UNKNOWN 之间变化的动态字符串。这些字符串使用 td class="status" 在 HTML 中显示。状态可以根据项目构建是失败还是成功而改变。SUCCESS 应该是绿色的,FAILURE 应该是红色的,所有其他的应该是黑色的。我有一个创建表的 for 循环。

我正在尝试使用 switch 语句根据字符串的内容使用 javascript 的函数 .fontcolor() 更改字体颜色。字符串正在从 status.status 中提取

目前一切都在屏幕上正确显示,但字体颜色实际上并没有改变。我也没有收到任何错误。

for (var i in buildstatuses) {
                var status = buildstatuses[i];


                switch (status.status) {
                    case "SUCCESS":
                        status.status.fontcolor("green")
                        break;
                    case "FAILURE":
                        status.status.fontcolor("red")
                        break;
                    default:
                        status.status.fontcolor("black")
                        break;
                }

                $("tr#" + status.id + " td.status").html(status.status)

                if (status.status != "SUCCESS") {

                    var row = $("tr#" + status.id)


                           row.parent().parent().parent().parent().parent().removeClass("dashboard-success").addClass("dashboard-fail");

                    row.parent().parent().prepend(row.clone());  // Places Failure at the top by cloning then removing
                    row.remove();

                }
                $("tr#" + status.id + " td.date").html(status.date)
                console.log(status.id);
            }
4

4 回答 4

1

我想你只是想改变css颜色内联:

var statusColor = 'black';
switch (status.status) {
  case "SUCCESS":
    statusColor = "green";
    break;
  case "FAILURE":
    statusColor = "red";
    break;
  default:
    statusColor = "black";
    break;
 }

 $("tr#" + status.id + " td.status").html(status.status).css('color', statusColor);
于 2012-05-08T13:30:49.887 回答
1

我将把它移到一个小函数中

function ChangeColor(result)
{
    var item=$(".status");
    if(result=="SUCCESS")
        item.css("color","green");
    if(result=="FAILURE")
        item.css("color","red");    
}

你可以这样称呼它

ChangeColor("FAILURE");

或者

ChangeColor("SUCCESS");

所以在你的代码中,

for (var i in buildstatuses) {
    var status = buildstatuses[i];
    ChangeColor(status.status);

   //your remaining code to do whatver you want after changing the color
}

示例:http: //jsfiddle.net/gVV3U/3/

于 2012-05-08T13:32:12.743 回答
0

您没有在 HTML 中使用颜色..

改变

$("tr#" + status.id + " td.status").html(status.status)

$("tr#" + status.id + " td.status")
        .html(status.status) // set text
        .css({color: status.status.fontcolor}); // set color
于 2012-05-08T13:27:01.090 回答
0

你可以使用 JavaScriptstyle函数来做到这一点:EX:

document.getElementById('yourId').style.color = 'red';

或使用 jquery:

 $('#yourid').css('color','red');
于 2012-05-08T13:29:48.390 回答