【问题标题】:Changing colour of text in table cell with php and js使用 php 和 js 更改表格单元格中文本的颜色
【发布时间】:2017-08-02 22:13:09
【问题描述】:

我有一个表格,我希望日子在某些里程碑时改变颜色。 我有 JS,但它只适用于第一个单元格,而不适用于其他单元格。任何想法如何循环 js 以更改表中每个名为 DAYS 的单元格?

我已将 ID 放在表中,但可能是错误的。

$(function () {
    // Score Color
    var score = parseInt($('#DAYS').text().trim());
    var color = 'red';
    if (!isNaN(score)) {
        if (score >= 40) {
            color = 'orange';
        }
        if (score >= 60) {
            color = 'green';
        }
        $('#DAYS').css('color', color);
    }
});

PHP table: 
echo"<td id=DAYS>".$applicant_card['DAYS']."</td>";

【问题讨论】:

    标签: javascript php html-table


    【解决方案1】:

    正如 DrRoach 所说,如果我们针对多个项目,我们应该使用 class 而不是 id。因为id 总是只指向一个唯一元素。

    因此,您可以将class 指定为DAYS 而不是id,并使用each() 遍历每个元素以赋予它们相应的颜色。

    示例代码

    $(function () {
       $('.DAYS').each(function(){
        var score = parseInt($(this).text().trim());
        var color = 'red';
        if (!isNaN(score)) {
            if (score >= 40) {
                color = 'orange';
            }
            if (score >= 60) {
                color = 'green';
            }
            $(this).css('color', color);
        }
        });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    PHP table: 
    <table>
    <tr><td class=DAYS>34</td></tr>
    <tr><td class=DAYS>44</td></tr>
    <tr><td class=DAYS>74</td></tr>
    <tr><td class=DAYS>23</td></tr>
    <tr><td class=DAYS>54</td></tr>
    </table>

    【讨论】:

    • 这是否包括在从我最初提供的 php 行填充的动态表中的样子?
    • 是的...只是给了一些虚拟表值来显示示例
    • 非常感谢...有被向下箭头的风险。什么是最好的书/参考我可以用于此信息而无需询问您的专业人士!
    • 如果是关于 HTML 和 JavaScript。我猜 Mozilla 文档最好 developer.Mozilla.org/en/docs/Web
    【解决方案2】:

    只要用“”改变

    PHP table: echo"<td id="DAYS">".$applicant_card['DAYS']."</td>";

    就是这样

    【讨论】:

      【解决方案3】:

      您可以将 echo 中的 id=DAYS 更改为 class=DAYS。 id 只能引用一个 DOM 元素,而类可以引用多个。

      $(".DAYS").each(function() {
        var score = parseInt($(this).text().trim());
        var color = 'red';
        if (!isNaN(score)) {
          if (score >= 40) {
              color = 'orange';
          }
          if (score >= 60) {
              color = 'green';
          }
          $(this).css('color', color);
        }
      });
      

      【讨论】:

      • 对所有数字都有效的好方法,我将 # 更改为“。”在脚本中。虽然所有的数字都是绿色的,但我期待不同的值有不同的颜色,因为脚本说红色橙色等
      • 啊抱歉,我的更改会将所有行设置为与第一个值相同的颜色。请查看我的编辑。
      • 对不起,数字刚刚恢复不变(黑色),ankits 为我工作。谢谢回复
      • 这是漫长的一天......道歉
      • 哈哈不用担心:)
      猜你喜欢
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      • 2015-01-24
      • 1970-01-01
      • 2015-04-28
      • 2017-12-27
      相关资源
      最近更新 更多