1

私は「タブ」のクラスを持つULを持っています.1つは「アクティブ」のクラスを持っています

「アクティブな」タブは、ユーザーが別のタブをクリックして使用されると明らかに変化するため、残りのタブとは色が異なります。

私がやりたいことは、「タブ」UL EXCEPT 内のすべての Li をアクティブなものに対して選択し、それぞれに CSS の背景を追加して、それぞれに異なる色を設定することです。タブの数は、IE のどのページにあるかによって異なります。あるページには 4 つのタブがあり、別のページには 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

css3 でこれを行いたい場合は、これを使用できます。

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

これは、「p」要素ではないすべての要素の背景色を設定します。詳細: http://kilianvalkhof.com/2008/css-xhtml/the-css3-not-selector/

于 2013-03-28T10:00:04.720 に答える
0

「アクティブ」がクリックされたときにタブコンテナに適用されるものであり、すべてのタブに class="tab" のようなものがあると仮定すると、このようなもので十分です。

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