3

したがって、基本的には、テーブルに関連付けられているすべての tr タグを選択して色を付け、それに応じて色を付けることで、行の色を交互に変更するために jQuery を使用します。ただし、特定の tr に色を付けたくない場合があり、そのような場合、交互の色付けはそれらの特定のテーブル行をスキップする必要があります。この目的のために、色付けをスキップするすべての行に適用する「rowSkip」というクラスがあります。

何ヶ月もの間、私はこれを機能させてきましたが、それはうまくいきます...しかし、常に1つの問題がありました. テーブルの行に複数のクラスを適用する必要があるが、色を付けたくない場合があります。これらの状況下では、jQuery のクラス セレクターに問題があるようです。それか、ここに簡単なものがありません...

例えば:

<tr class="rowSkip">--> 正常に動作します。

<tr class="rowSkip strong someclass1 someclass2">--> 機能しません (「rowSkip」クラスが存在するにもかかわらず色が付きます)

これがなぜなのか、そしてクラス attr を完全に取得し、スペースで分割し、それを繰り返し処理して、rowSkip の存在を確認する以外に、どのように回避できるのか、誰にもわかりませんか?

コードは以下のとおりです。

$("Table.alternate tr:not(.rowSkip)").each(function() {
//if(!$(this).hasClass("rowSkip")) { //Also tried this, and several other renditions to no avail.

   $(this).addClass(i++ % 2 == 0 ? 'rowOff1' : 'rowOff2');
//}
});

ありがとう、マーク

4

2 に答える 2

6

これを試して:

$("Table.alternate tr:not('[class*=rowSkip]')").each

クラスが常にrowSkipで始まる場合は、これを行うことができます

$("Table.alternate tr:not('[class^=rowSkip]')").each //looks for class names that starts with rowSkip
于 2009-10-27T18:33:48.900 に答える
0

このためだけに、:oddと:evenのjQueryセレクタービルドを確認することをお勧めします。次に、いくつかの方法があります。

$('table.alternating tr:odd td').css('background-color','#eee');

またはクラスを使用します:

$('table.alternating tr:odd').addClass('odd');

といくつかのCSS:

tr.odd td { background-color: #eee }
于 2009-10-28T05:15:19.033 に答える