2009-06-01 3 views
7

で偶数/奇数行を決定するためのより良い方法は、あなたは、次のサンプルコードでWebページを持っていると言う:私は明示的に「「でも」」奇数と言っているので、テーブル

<tr class="even"> 
    <td>something1</td> 
    <td colspan="1">somthing1.1</td> 
</tr> 


<tr class="odd"> 
    <td>something2</td> 
    <td><b>something2.1</b></td> 
</tr> 

<tr class="even"> 
    <td>something3</td> 
    <td><b>something3.1</b></td> 
</tr> 

これらはループではありません。後でsomething2とsomething3の間に新しい行を追加することにした場合、残りの行についても 'even'を 'odd'に変更する必要があります。

IE6でこれを自動的に行う方法はありますか?

は現在、これも

.headerTable tr.even { 
    font-weight : bold; 
    font-size : 9pt; 
    font-family : Arial,Helvetica,sans-serif,Verdana,Geneva; 
    background-color: #FFFFFF; 
    height: 20px; 
    color: #000000; 
} 

のための私のCSSコードである私はすでに、jQueryの

+0

@OP、あなたの質問の書式とスペルは今後注意してください。 –

+0

@OP - "これらはループしていません" - データがどこに来るのか - あなたはHTMLで手入力していますか? –

+0

@ロブ:彼が言っていることだと思います。私には意味がある... –

答えて

13

jQueryに試してみてください。そして、あなたは、単にこれを行うことができます。

$("#myTable tbody tr:visible:even",this).addClass("even"); 
    $("#myTable tbody tr:visible:odd",this).addClass("odd"); 

ザ・「可視」セレクタが本当に必要はありませんが、隠されたいくつかの行をすることによって、テーブルをフィルタリングする場合、メソッドが正常に動作します。

+3

これを行うためにjQueryを使用することは、本当に不幸です。 –

+3

jQueryを使用してこれを行うには、これは実際には過剰です。しかし、jQueryを使用すると、Web開発者が興味を持っている他の多くの利点があります –

+3

彼はすでにjQueryを使用している場合はありません。 – Malfist

5

使用jQueryの偶数/奇数子implementation

+4

これを行うためにjQueryを使用することは、本当に不幸です。 –

+2

彼が既にjQueryを使っているのではない。 – Malfist

0

はいていました。 JavaScriptを使用してこれらの要素を実行し、偶数/奇数に従ってクラスをリセットすることができます。

8

最良の方法は:nth-child() pseudo-classです。

しかし残念ながら、まだ広くサポートされていません。したがって、JavaScriptを使用する必要があるでしょう。

12

これを行う方法は、nth-child(even)と(odd)ルールを使用することです。残念ながら、これは驚くべきことではありません。IE6はこれをサポートしていません。だから、いくつかのオプションがあります:

A)にJavaScriptを使用、それの明らかな欠点が無効になってJSを持つ人々のために働いていないと:

var rows = document.getElementById('mytable').getElementsByTagName('tr'); 
for(var x = 0; x < rows.length; x++) { 
    rows[x].className = (x % 2 == 0) ? 'even' : 'odd'; 
} 

、あなたのアプリケーションに、よりダイナミックなクライアント側の動作を必要とすることが予想される場合jQueryのようなライブラリをチェックすることができます。 の場合は、このは不要ですが、ブラウザ間でJavascriptを使用して簡単に作業できます。この答えに表示されているようにjQueryで上記を行います。

あなたの聴衆によっては、JavaScriptが完全に受け入れられるかもしれません。そうでない場合は、多分あなたがすることができます...

B)あなたのCSSを簡略化し、手動でそれを続けてください。奇数行をクラスでマークし、行のデフォルトスタイルを偶数スタイリングにすることができます。これは物事を動かすときあなたにいくつかの仕事を節約します。

C)プログラムで行を生成します。これが問題であることを十分に頻繁に更新しようとしているのであれば、そのようなデータを固定テーブルに入力するのは本当に古風なことです。私はあなたの状況をはっきりと認識していませんが、PHPのような単純な言語を使ってループを繰り返すのは簡単なことです。

D)実際に古くなったブラウザを使用しないでください。 :)(これはあなたのコントロールから外れていると確信しているので、これはほんの半分の冗談です)

+0

AとCは素晴らしいオプションです。 Dは、システム管理者の多くがIE6だけの態度で開発された古いアプリケーションを壊す危険を冒すことができないため、多くの開発者の制御を超えています。 – Nate

+0

'A'ではjQueryについて何か言わなければなりません;) – Malfist

+0

Fine。もしあなたが主張すれば。 :) –

関連する問題