1

私はこのcssコードを使用しています:

.even{
    background: #E4ECF6;
}
.odd{
    background: #F3F7FB;
}
.firstrow{
    background-color: #599ECF;
}

私はこのcss jqueryコードを使用しています:

$(document).ready(function(){
$('table tr:even').addClass('even');
$('table tr:odd').addClass('odd');
$('table tr:first').addClass('firstrow');
});

このコードは最初のテーブルで正しく実行されます。しかし、2つ以上のテーブルがある場合、このコードは最初のテーブルの最初の行を着色できます。すべてのテーブルのすべての最初の行に色を付けるためのより良いコードはありますか?

4

1 に答える 1

1

交換してみる

$('table tr:first').addClass('firstrow');

$('table tr:first-child').addClass('firstrow');

重要なのは、:first-childセレクターを使用することです。

親の最初の子であるすべての要素を選択します。

ライブデモはこちら.


それでも:firstセレクターが必要な場合は、次のようにできます。

$(document).ready(function () {
  $('table tr:even').addClass('even');
  $('table tr:odd').addClass('odd');
  $('table').each(function () {  // For each 'table'...
    $(this).find('tr:first').addClass('firstrow');  // Add class 'firstrow' to the first 'tr'.
  });
});

ライブデモはこちら.

于 2013-01-12T09:42:29.250 に答える