Javascript 如何使用jquery更改表格单元格背景颜色

Javascript 如何使用jquery更改表格单元格背景颜色,javascript,jquery,css,Javascript,Jquery,Css,我想使用jquery根据单元格的文本内容更改单元格的背景色 例如: 对于“超过”td中的第二行,我想将背景颜色更改为绿色,因为它的文本已超过 <table> <tr><td>Jedi Armor1</td><td>Needs</td></tr> <tr><td>Jedi Armor2</td><td>Exceeds</td></tr>

我想使用jquery根据单元格的文本内容更改单元格的背景色

例如:

对于“超过”td中的第二行,我想将背景颜色更改为绿色,因为它的文本已超过

<table>    
<tr><td>Jedi Armor1</td><td>Needs</td></tr>
<tr><td>Jedi Armor2</td><td>Exceeds</td></tr>    
</table>

绝地武士需要什么
绝地盔甲

更新以下问题澄清:

要根据另一个单元格的值更改一个单元格的背景色,可以使用,例如:

$('table tr td:nth-child(4)').each(function () {
    $(this).text() == 'Exceeds' && $(this).parent().find('td:nth-child(2)').css('background-color', 'green');
});

要更改特定列的背景,请执行以下操作:

$('table tr td:nth-child(2)').css('background-color', 'red');
但是,您应该尝试使用CSS来保持样式的分离,在这种情况下,您可以通过以下方式来实现这一点:

table tr td:nth-child(2){
  /* styles*/
}
或者..如果您特别需要动态控制,请添加一个类,而不是直接在jQuery中分配样式:

$('table tr td:nth-child(2)').addClass('rowBackground');
然后在CSS中:

.rowBackground{
  background-color:red;
}
您可以使用
.eq()
:eq()
选择器:

$('table tr td:eq(3)').css('background-color','green');
如果要更改颜色的
td
始终是最后一个
td
,请使用
.last()

$('table tr td').last().css('background-color','green')

我假设你想改变单元格的颜色,只改变单元格的颜色。如果要根据其文本更改其颜色,请使用jQuery选择器:

CSS:

.greenBg {
    background: green;
}
jQuery:

$("td:contains('Exceeds')").addClass('greenBg');

编辑:

如果只想将其限制在第二列,则更适合:

$("td:nth-child(2):contains('Exceeds')").addClass('greenBg');
如果有人想更改整个列的颜色:

$("td:nth-child(2):contains('Exceeds')").closest('table').find('td:nth-child(2)').addClass('greenBg');

本地JS:

var td = document.getElementsByTagName("td");
var i = 0, tds = td.length;
for (i; i < tds; i++) {
    if (td[i].innerHTML == "Exceeds") {
        td[i].setAttribute("style", "background:green;");
    }
}
var td=document.getElementsByTagName(“td”);
var i=0,tds=td.length;
对于(i;i

这里有一个jsfiddle要展示:

您可以在CSS中这样做,如果它是一个选项的话。只需执行
table tr td:nth child(2){…}
。您希望基于单元格的内容执行此操作,还是基于单元格在表中的位置执行此操作?你想改变整列还是那个单元格?等等,文本的逻辑如何?我不确定OP想要什么。。。问题不是很清楚!很明显(从其他评论中)有些东西是基于“超越”这个词的,但是,正如你所说的,不清楚是什么!