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

标签 html css arrays perl

这是部分脚本,我正在将 Oracle DB 中的表以 HTML 格式打印到电子邮件中,其中包含 3 列;对于第 3 列,只有两个值:PASSFAIL。如果单元格为PASS,则单元格的bgcolor将为绿色,如果为FAIL,我想要 bgcolorRED

下面的代码有效,但我不确定如果条件为 FAIL,如何添加另一个类(red)。

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

最佳答案

只需用空字符串以外的内容结束三元条件:

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>");

关于html - 如何将多个 CSS 类添加到单个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32323578/

相关文章:

c - 将具有固定长度字符串的数组传递给 C 中的函数

java - 分数程序 - Java

javascript - 一页网络应用程序和内联 javascript 和 CSS

javascript - 我正在尝试添加关闭功能

javascript - 为什么我的高度固定器代码在最大化后恢复浏览器窗口时出错?

javascript - THREE.js 如何旋转 CSS2D 文本标签

css - 我无法更改导航链接的颜色

html - 分色超链接

python - 连接大的 numpy 数组

security - 在 HTML5 LocalStorage 中存储密码