1

我有一个“标签”类的 UL,一个 li 有一个“活动”类

“活动”选项卡显然会随着用户单击不同的选项卡而发生变化并被使用,因此它的颜色与其他选项卡不同。

我想要做的是选择“标签”中的所有李,除了活动标签,并通过为每个标签附加 CSS 背景来为每个标签设置不同的颜色。标签的数量可能会有所不同,具体取决于它们在 IE 上的哪个页面,一个页面可能有四个标签,但另一个页面可能有 6 个或 7 个。

如果我把它们全部抓起来,我不会有问题,但我不知道如何尝试排除活动选项卡,因为我计划使用 Nth 将包括活动选项卡?

任何帮助表示赞赏。

4

3 回答 3

2

您可以使用.not()

$('ul.tabs li').not('.active').css({ ... });

然后,您可以使用以下方法遍历它们.each()

$('ul.tabs li').not('.active').each(function() { ... });

编辑:假设您有某种方法可以确定哪个选项卡应该具有哪个背景,这是一个使用中的示例:JSFiddle

于 2013-03-28T09:57:07.333 回答
0

假设“活动”是单击选项卡容器时应用于选项卡容器的内容,并且所有选项卡都有类似 class="tab" 这样的内容就足够了。

$(".tab").each(funciton() {
    if (!$(this).hasClass("active"))
    {
            $(this).addClass("myBackground");
    }
});
于 2013-03-28T09:57:53.717 回答
0

如果你想在 css3 中这样做,你可以使用这个:

:not(p)
{
background:#ff0000;
}

这将为所有不是“p”元素的元素设置背景颜色。更多信息: http: //kilianvalkhof.com/2008/css-xhtml/the-css3-not-selector/

于 2013-03-28T10:00:04.720 回答