1

我正在研究替代背景颜色并面临一些挑战。我想通过 CSS 或 JavaScript/jQuery 仅将备用背景颜色设置为奇数行。在小提琴中,我故意隐藏了 EVEN 行,因为要求是相同的。我试图使用 jQuery 来实现它,但无法继续进行。请大家不要建议我用 DIV 替换 TABLE。不幸的是,我正在处理旧标记(Intranet 网站)。对于现有的 HTML 标记,我们将不胜感激帮助/指导。

    if($('table tr').hasClass('odd')){
        $(this).find('td :first-child').css('background','yellow');
    }

编辑

对于所有蓝色背景..我想将这些背景颜色更改为奇数还是偶数?我想现在清楚了吗?

新的 JSFiddle

4

8 回答 8

5

你不必为此使用脚本。

查看CSS 偶数/奇数规则。

您可以为所有 even/odd 分配背景颜色tr

工作小提琴

只需将其添加到您的CSS中,然后丢失脚本。

tr.odd tr:nth-child(even) /*or [odd] if you need*/
{
    background-color:yellow;
}

另外,如果您只想使用颜色,请将您的background规则更改为。background-color

更新:

从您的评论中,我了解到您只想选择奇数类的奇数表。(问题很不清楚)

所以:看到这个更新的小提琴

tr.odd:nth-child(4n+1)
{
    background-color: yellow;
}
于 2013-09-11T14:32:53.833 回答
0

我想我终于明白了。您希望其他所有 tr.odd 具有不同的背景颜色。以下是使用 jQuery 的方法(如果您需要支持旧版本的 IE):

$('tr.odd:even').css('background','yellow');
于 2013-09-11T14:43:12.210 回答
0

I just did something similar to this but i used a class to add the "odd" styles to it.

$(function() {
    $("table tr:odd").addClass("odd");
});

Might be a little simpler if you want to add more styles than the BG color.

于 2013-09-11T14:42:17.257 回答
0

您可以object:nth-child(even)为此使用(或奇数)。

http://jsfiddle.net/5dgJ3/3/

于 2013-09-11T14:40:00.867 回答
0

如果您的奇数表行已经具有“奇数”类,那么您可以将普通 CSS 应用于“奇数”类。

如果您需要在奇数行中更改第一列的背景颜色,您可能想要使用td:first-of-type而不是第一个孩子。

于 2013-09-11T14:34:29.337 回答
0

像这样的东西怎么样:

$('table tr:visible:odd').css('background','yellow');

jsFiddle

如果行的可见性没有改变,':visible' 选择器是多余的。

于 2013-09-11T14:37:06.957 回答
0

我可能会放弃“奇数”类,因为它提供有限的语义含义,只需让 jQuery 应用该类,然后让 css 进行样式设置。

选项1

jQuery:

$('tr:nth-child(odd)').addClass('odd');

CSS:

.odd {
    background-color:#f7f7f7;
}

例子:

http://jsfiddle.net/gyrostu/eY2WQ

选项 2

纯 CSS:

tr:nth-child(even) {background: #CCC}
tr:nth-child(odd) {background: #FFF}

W3C Web 样式表 CSS 提示和技巧

于 2013-09-11T15:03:12.597 回答
0
 $(document).ready(function () {
        $("tr:odd", "#adminMessageId").css("background-color", "SkyBlue");

        $("input").focus(function () {
            $(this).css("background-color", "#cccccc");
        });
        $("input").blur(function () {
            $(this).css("background-color", "#ffffff");
        });
于 2017-09-14T06:40:37.473 回答