jQuery动态选项卡颜色(除一个选项卡外)

时间:2013-03-28 09:52:55

标签: jquery html css tabs

我有一个带有“标签”类的UL 一个李有一类“活跃”

“有效”标签明显会随着用户点击其他标签而变化,并且会被使用,因此其颜色与其他标签不同。

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

如果我抓住他们所有我不会有问题,但我不知道怎么去尝试排除活动标签,因为我计划使用Nth,这将包括活动标签?

任何帮助表示感谢。

3 个答案:

答案 0 :(得分:2)

您可以使用.not()

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

然后,您可以使用.each()迭代它们:

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

修改:假设您有某种方法可以确定哪个标签应该包含哪个背景,以下是使用此示例的示例:JSFiddle

答案 1 :(得分:0)

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

$(".tab").each(funciton() {
    if (!$(this).hasClass("active"))
    {
            $(this).addClass("myBackground");
    }
});

答案 2 :(得分:0)

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

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

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