質問

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

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

EG:

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

<tr class="rowSkip strong someclass1 someclass2">-<!> gt;動作しません(<!> quot; rowSkip <!> quot;クラスが存在するにもかかわらず、まだ色が付いています)

これがなぜなのか、クラス属性を完全に取得し、スペースで分割し、それを繰り返して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');
//}
});

ありがとう、 マーク

役に立ちましたか?

解決

これを試してください:

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

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

$("Table.alternate tr:not('[class^=rowSkip]')").each //looks for class names that starts with rowSkip

他のヒント

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

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

またはクラスを使用:

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

およびいくつかのCSS:

tr.odd td { background-color: #eee }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top