0

我正在尝试根据表格的第一个字符更改表格第 4 列中的文本颜色。如果第一个字符是“+”,那么颜色应该是绿色。如果第一个数字是“-”,则颜色应为红色,如果两者都不是,则保留黑色。这是我尝试编写的 Jquery 代码,但我还没有确定 each() 概念:

  $("tr td:eq(3)").each(function (i) {

    if (this.html().charAt(0) == '-') {
        this.css('color' , 'red');
    } 

    if (this.html().charAt(0) == '+') {
        this.css('color' , 'green');
    } 

  });  

这是一个 HTML:

<table>
  <tr>
    <td>1</td>
    <td>A</td>
    <td>x</td>
    <td>-10</td>
  </tr>
  <tr>
    <td>2</td>
    <td>B</td>
    <td>y</td>
    <td>+25</td>
  </tr>
  <tr>
    <td>3</td>
    <td>C</td>
    <td>z</td>
    <td>66</td>
  </tr>
</table>

谢谢!

4

2 回答 2

2

在您的代码this中是一个普通的 javascript 对象,您需要jQuery使用以下对象$(this)

var col;
$("tr td:nth-child(4)").each(function(i) {
    col = $(this);
    if (col.html().charAt(0) == '-') {
        col.css('color', 'red');
    }

    if (col.html().charAt(0) == '+') {
        col.css('color', 'green');
    }
});​

编辑:您的使用eq没有达到预期的效果,我已经使用更新了代码nth-child

于 2012-12-21T06:27:02.577 回答
2

我只对您的代码做了一些细微的更改,这项工作是您想要的。

$("tr").each(function () {
    var data = $(this).find("td:eq(3)").text();
    if(data.charAt(0) == '-')
    {
       $(this).find("td:eq(3)").css('color' , 'red');        
    }
    else if(data.charAt(0)== '+')
    {
       $(this).find("td:eq(3)").css('color' , 'green');           
    }
  });
于 2012-12-21T06:41:09.557 回答