【问题标题】:JQuery hide td based on background colorJQuery根据背景颜色隐藏td
【发布时间】:2013-08-22 09:38:49
【问题描述】:

我想根据<tr><td> 的背景颜色隐藏<tr>,我当前的代码根据<td> 中的文本隐藏<tr>,但那是不是一个很好的解决方案。该表是一个日历,因此如果 JQuery 可以根据背景颜色隐藏表行,那就太好了。

我当前的代码:

function ShowAbsence()
{
    if(!presenceActive) clearPresence();
    $('table#newspaper-a tr:not(#header, #trWeekNummer)').each(function() { 
        var toggle1 = true;
        $('td:not(#firstlastname)',this).each(function() { 
            if($(this).text() == "f" || $(this).text() == "M" || $(this).text() == "A") {
                toggle1 = false;
            }
        });
        if(toggle1) {
            $(this).toggle();
        }
    });

    if(absenceActive) {
        absenceActive = false; 
    } else {
        absenceActive = true;
    }
}

这很好用,但正如您所见,它会根据单元格中的文本隐藏。希望您能帮我根据背景颜色隐藏它!

【问题讨论】:

  • 使用:$(this).css('background-color')
  • if($(this).css('background-color') == "#088A08" || $(this).css('background-color') == "#088A08" || $(this).css('background-color') == "#D7DF01") 不幸的是不起作用
  • @ArvindBhardwaj 会返回一个 RGB 值,这通常是不可取的。

标签: jquery html-table


【解决方案1】:

您必须使用 jQuery 的$.css() 函数,这样您才能获得与选择器关联的颜色样式。

这将返回一个 RGB 值(如 rgb(255,0.221) ),因此要将其转换为十六进制(#ff00dd 类型),您需要使用此函数(提取 from this other question):

function hexc(colorval) {
    var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
    delete(parts[0]);
    for (var i = 1; i <= 3; ++i) {
        parts[i] = parseInt(parts[i]).toString(16);
        if (parts[i].length == 1) parts[i] = '0' + parts[i];
    }
    color = '#' + parts.join('');
    return color;
}

因此,你可以这样做:

if (hexc($('#demo').css('background-color')) == '#ff00dd') {
    alert("Works!!");
}

活生生的例子:http://jsfiddle.net/vyQKV/1/

但是...

我强烈建议您使用类而不是处理颜色。背景颜色应该用不同的类定义,为了检查一个你应该用$.hasClass()检查类

例如:

if($(this).hasClass('redBackground')){
    //whatever
}

【讨论】:

  • 好的,我将尝试您的最后一次编辑,感谢您的快速响应。
  • 不仅是为了快速响应。是为了良好的编程技术:)
  • 完美运行!谢谢,我会将此标记为正确答案。
猜你喜欢
  • 1970-01-01
  • 2021-03-30
  • 2021-10-24
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2013-07-15
相关资源
最近更新 更多