Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery:使用each()根据第一个字符更改表格数据的颜色_Jquery_Each - Fatal编程技术网

Jquery:使用each()根据第一个字符更改表格数据的颜色

Jquery:使用each()根据第一个字符更改表格数据的颜色,jquery,each,Jquery,Each,我试图根据表格的第一个字符更改表格第四列中的文本颜色。如果第一个字符是“+”,则颜色应为绿色。如果第一个数字是“-”,则颜色应为红色,如果两者都不是,则保留黑色。下面是我试图编写的Jquery代码,但我还没有确定each()的概念: $("tr td:eq(3)").each(function (i) { if (this.html().charAt(0) == '-') { this.css('color' , 'red'); } if (th

我试图根据表格的第一个字符更改表格第四列中的文本颜色。如果第一个字符是“+”,则颜色应为绿色。如果第一个数字是“-”,则颜色应为红色,如果两者都不是,则保留黑色。下面是我试图编写的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>

1.
A.
x
-10
2.
B
Y
+25
3.
C
Z
66

谢谢

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


编辑:您使用的
eq
没有预期效果,我已经在您的代码中使用了
n子项
更新了代码
是一个普通的javascript对象,您需要使用
$(此)
jQuery
对象:


编辑:您使用的
eq
没有预期的效果,我已经使用第n个孩子更新了代码

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

$("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');           
    }
  });

我只对你的代码做了一些轻微的修改,这项工作是你想要的

$("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');           
    }
  });

那很快。我刚把它粘贴到我的页面上,但是颜色没有改变。代码中是否存在其他错误?这仍然没有更改第4列文本的颜色。缺少了什么吗?它应该工作得很好,这是一个工作原理,但让我问一下:为什么我们需要声明'col'变量才能使'$(This)'工作??另外,我没有15个名声,所以我不能提高你的分数——不过谢谢!因为您必须在
循环中多次使用
$(this)
。将
$(this)
分配给
col
可以加快整个操作,不过在这种情况下,您不会看到太大的差异。这只是基本的编码实践,如果你要多次使用同一个东西,把它放在一个变量中。这很快。我刚把它粘贴到我的页面上,但是颜色没有改变。代码中是否存在其他错误?这仍然没有更改第4列文本的颜色。缺少了什么吗?它应该工作得很好,这是一个工作原理,但让我问一下:为什么我们需要声明'col'变量才能使'$(This)'工作??另外,我没有15个名声,所以我不能提高你的分数——不过谢谢!因为您必须在
循环中多次使用
$(this)
。将
$(this)
分配给
col
可以加快整个操作,不过在这种情况下,您不会看到太大的差异。这只是基本的编码实践,如果你要多次使用同一个东西,把它放在一个变量中。这个代码生成了整个红色和其他一些单元格。但是没有针对第四列。现在尝试我已经将目标更改为第四列现在第四列的文本颜色将更改。谢谢Vivek。我刚刚在JSFIDLE中测试了它,它也可以工作。这段代码生成了整个red和其他一些单元格。但是没有针对第四列。现在尝试我已经将目标更改为第四列现在第四列的文本颜色将更改。谢谢Vivek。我刚刚在jsfiddle中测试了它,它也可以工作。