【问题标题】:Change Background Color based on innerText?根据innerText更改背景颜色?
【发布时间】:2013-10-24 18:23:42
【问题描述】:

我对 PHP 很陌生,我不知道该怎么做。我有一个使用 fget 加载为 html 表的超大 CSV 文件。如何浏览特定列并将仅包含“是”字样的该列的特定单元格的 td 背景颜色更改为绿色?

供参考,这是我的代码:

<!DOCTYPE html>
<html>
<head>
<link href="stylesheets/styles.css" rel="stylesheet" />
</head>
<body>
<?php
echo "<table>\n\n";
$f = fopen("market_research.csv", "r");
while (($line = fgetcsv($f)) !== false) {
        echo "<tr>";
        foreach ($line as $cell) {
            if (substr($cell, 0,4) == "http") {
                echo "<td>" ."<a href='" . $cell . "'>Go!</a>";
            } else
                echo "<td>" . htmlspecialchars($cell);
        }
        echo "<tr>\n";
}
fclose($f);
echo "\n</table></body></html>";


?>

这是我当前的 CSS:

tr {background-color: #f7f7f7;}
body {background-color:#8b9dc3;}
td:first-child { 
        text-align: center;
        font-weight: bold;
        padding-left: 5px;
        padding-right: 5px;
}

td:nth-child(odd)
{
background-color: #FFFFFF;
}

tr:first-child {
        background-color: #FFFFFF !important;
        text-align: center;
        font-weight: bold;
        font-size: 110%;
        height: 50px;
}

td {
        padding-left: 5px;
        padding-right: 5px;
}

【问题讨论】:

  • “是”会出现在任何单元格 (td) 中吗?只是“是”作为整个字符串吗?
  • 你熟悉javascript还是jQuery?
  • 您能说明p 是如何进入您的td 的吗?我的意思是一个简单的原型,它是否只包含p 或您在td 中的任何其他内容?
  • 那个 p 是从别的东西那里出来的——我刚刚编辑了它。 “是”可以作为字符串的一部分出现在任何列中,但我想在一个特定列中定位它的任何实例(它是整个字符串)。我对 javascript 和 jquery 有一些经验(虽然比我对 php 的经验还要多)——我也在自学。

标签: php css html-table background-color import-from-csv


【解决方案1】:

你可以这样设置:

希望对你有帮助

您需要在使用fget() 生成&lt;td&gt;s 时将data-attr 添加到您的元素&lt;p&gt;

<p data-val="Yes">Yes</p>

你的 css 会是这样的:

p[data-val="Yes"] {background-color:green;}

Working Example

【讨论】:

    【解决方案2】:

    您需要为这些单元格设置一个类。这标识了一个组,然后您可以在样式表或标签中设置这些样式。

    添加额外的 IF 语句来检查您的条件“$cell contains 'yes'”

    您可以像这样检查字符串中的字符串,此示例 $a 是您的变量,并且您正在检查字符串 'mattiscool' - 如果找到它,它将输出 'true'

    if (strpos($a,'mattiscool') !== false) { 回声“真”; }

    相反,我们想要输出您的 TD 单元格和一个类标签。 因此,在标签内添加部分 if 语句打印 - 就像这样

    <td Class="myfirstclass">
    

    然后在您的样式表中添加此类的样式 - 例如。

    myfirstclass{
    font-family:Verdana;
    font-size:16pt;
    }
    

    这就是你要找的东西?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 2019-06-20
      • 2013-09-03
      • 2020-10-11
      • 2016-05-13
      • 2012-12-07
      • 1970-01-01
      相关资源
      最近更新 更多