2012-03-27 88 views
0

如果有一个这样的表..更改文本颜色(如果,否则)

<table> 
<tr> 
<td class="cell1">20</td> 
</tr> 
</table> 

等one..with多个<td>当然..

现在我想改变文字的<td>的颜色,如果数量大于5

smaler这是可能使用jQuery?

<td>没有输入字段或段落,只是文本。

+1

你所说的 “如果该数字小于5” 是什么意思?你的意思是TD中的20个,还是你的意思是cell1类中的1个?或者你是指TD事件的数量? – afrederick 2012-03-27 16:39:06

回答

3
$('.cell1').each(function(i, n) { 
    if($(n).text() < 5) $(n).css('color', 'green'); 
}); 

迭代通过每个单元,校验值,然后相应地改变

http://jsfiddle.net/bQfb6/2/

+0

编辑我的链接评论到的jsfiddle – 2012-03-27 16:40:01

+0

尼斯,非常感谢:)) – 2012-03-27 16:49:14

+0

@AndrewJackson你可能想在此有一个读http://meta.stackexchange.com/questions/5234/how-does-accepting-an -answer-work :) – 2012-03-27 17:43:47

0

这应该工作:

$("table.myTable td").each(function(){ 
    if(parseInt($(this).html())<5){ 
     $(this).addClass("newColor"); 
    } 
}); 
0

可以测试领域的这样的内容:

$('.cell1').each(function() { 
    if($(this).text() < 5) { 
     $(this).css('color', 'red'); 
    } 
}); 
0

是的。您可以使用.each来遍历所有表格单元格。然后,您可以在单元格中获取text,然后在parse it as an integer (base 10)中获取。如果它小于5,你可以将csscolor更改为任何你想要的。

我假设所有的数字都是整数,并且在页面加载后它们不会改变。

例如:

$("td").each(function(){ 
    $cell = $(this); 
    if(parseInt($cell.text(),10) < 5){ 
     $cell.css("color", "red"); 
    } 
});​ 

Try it!