2012-09-18 57 views
0

我有一个表格,如http://jsfiddle.net/Lijo/UqdQp/4/所示。对于值为“1”的所有列,我需要将背景色设置为红色。使用jQuery做这件事的最好方法是什么(就性能而言)?根据单元格中的值选择表单元格

注意:做完背景色之后,我还需要提醒表格单元格的值。这意味着我需要在所选单元格上使用“this”运算符。

参考答案:

  1. http://jsfiddle.net/Lijo/uGKHB/11/
  2. http://jsfiddle.net/Lijo/uGKHB/12/
  3. Finding column index using jQuery when table contains column-spanning cells
+0

所有包含* a * 1的列,或者所有包含所有值(除标题行外)*都为* 1的列? –

回答

1
var $tds = $("td").filter(function(i){ 
    return $(this).html() == 1; 
}); 

$tds.css({ background: 'red' }); 

$.each($tds, function(i, x){ 
    console.log($(x).html()); 
}); 

我用的console.log而不是警报的原因很明显。

+0

它也为“1234”着色。我们如何克服这一点? http://jsfiddle.net/Lijo/uGKHB/3/ – Lijo

+0

更新...只是注意到了。 – chovy

+0

谢谢。我试图将这应用到标题单元格 - 没有工作。任何想法为什么? http://jsfiddle.net/Lijo/uGKHB/7/ – Lijo

1

我已经使用的jQuery的each函数来迭代每个表格单元,并且当它突出显示细胞符合所需条件。
工作演示: http://jsfiddle.net/saji89/uGKHB/

$('.resultGridTable td').each(function() 
{ 
    if($(this).html()==1) 
    { 
     $(this).css({'background':'#FF0000'}); 
    }   
}); 

使用contains选择,而不是if条件,应多快: http://jsfiddle.net/saji89/WbXTr/

+0

请在答案中发布您的答案,而不是依赖外部网站来托管您的代码。 –

+0

谢谢。有用。不过,我想知道是否有更快的方法。 – Lijo

+0

检查了这一点,使用'contains'选择器,从而避免了'if'的用法:http://jsfiddle.net/saji89/WbXTr/ – saji89

相关问题