更改表格中的单元格颜色

时间:2015-10-15 21:10:43

标签: javascript jquery

我的页面有一个包含3列的表格,其中包括:

  1. 会员姓名
  2. 填写表格的必要条件
  3. 状态
  4. 第2列的值为"是"或"否"第3列可以有"待定","开始"或者"完成"值。

    我想让第3列中文本的颜色根据状态而改变,所以我做了以下js。

    $("td[headers ='STATUS']").each(function () {
       if($(this).text() == 'Pending'){
           $(this).css("color", "red");
       }
       else if($(this).text() == 'Finished'){
          $(this).css("color", "green");
       }
       else if($(this).text() == 'Started'){
          $(this).css("color", "#B8B800");
       };
    });
    

    它按预期工作。但是现在我只想改变第3列的颜色,当第2列有一个值"是"为了强制性,否则它应该保持黑色。

    有没有办法混合我的"如果"检查另一栏?

1 个答案:

答案 0 :(得分:0)

我会更改我的概念,在行上运行,而不是在所有单元格上运行,并且“按行”执行检查。

这就是它的样子:

JS:

    $(function () {
    $("tbody tr").each(function () {
        var cols = $(this).children("td");
        if ($(cols[1]).text() == "Yes") {
            var statusEle = $(cols[2]);
            switch (statusEle.text()) {
                case 'Pending':
                    statusEle.css("color", "red");
                    break;
                case 'Finished':
                    statusEle.css("color", "green");
                    break;
                case 'Started':
                    statusEle.css("color", "#B8B800");
                    break;
            }
        }
    });
});

HTML:

<table>
<thead>
    <tr>
        <th>Name</th>
        <th>Is Obligated</th>
        <th>Status</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>John</td>
        <td>Yes</td>
        <td>Single</td>
    </tr>
    <tr>
        <td>Doe</td>
        <td>No</td>
        <td>Pending</td>
    </tr>
    <tr>
        <td>CRAP</td>
        <td>Yes</td>
        <td>Pending</td>
    </tr>
    <tr>
        <td>John</td>
        <td>Yes</td>
        <td>Finished</td>
    </tr>
</tbody>

Working fiddle

相关问题