【问题标题】:Select table cells based on the value in the cell根据单元格中的值选择表格单元格
【发布时间】:2012-09-18 06:42:34
【问题描述】:

我有一个如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

【问题讨论】:

  • 所有包含 a 1 的列,或所有包含值的所有列(标题行除外)都是 1?

标签: jquery


【解决方案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 而不是 alert。

【讨论】:

【解决方案2】:

我使用了 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/

【讨论】:

  • 请在您的答案中发布您的答案,而不是依赖外部网站来托管您的代码。
  • 谢谢。有用。但是我想知道是否有更快的方法。
  • 检查一下,使用contains 选择器,从而避免if 用法:jsfiddle.net/saji89/WbXTr