如何将多个CSS类添加到单个数组

时间:2015-09-01 04:32:19

标签: html css arrays perl

这是部分脚本,我是用HTML格式将Oracle DB中的表格打印成电子邮件,其中包含3列;对于第3列,只有两个值:PASSFAIL。如果单元格为PASS,则单元格的bgcolor将为green,如果为FAIL,则我希望bgcolorRED }。

以下代码有效,但如果条件为red,我不确定如何添加其他类(FAIL)。

  chomp($ary[2]);
  push(@HTML,sprintf("<td%s>%s</td>",
                (($ary[2]) eq "PASS")? " class=\"green\"" : "",
                $ary[2]));

1 个答案:

答案 0 :(得分:0)

使用空字符串以外的其他内容完成三元条件:

push(@HTML, sprintf('<td class="%s">%s</td>', ($ary[2] eq 'PASS' ? 'green' : 'red'), $ary[2]));

虽然简单的字符串插值可以做到真的需要sprintf吗?这可以产生更具可读性的代码:

my $class = $ary[2] eq 'PASS' ? 'green' : 'red';
push(@HTML, "<td class='$class'>$ary[2]</td>");

编辑:回答下面的第二个问题。我会使用一个简单的条件而不是多级三元运算符,因为我觉得它更具可读性。

my $class;

if ($ary[2] eq 'PASS') {
    $class = 'green';
} elsif ($ary[2] eq 'FAIL') {
    $class = 'red';
} else {
    $class = 'yellow';
}

push(@HTML, "<td class='$class'>$ary[2]</td>");