2012-02-08 15 views
1

:oddフィルタ、または:nth-child(odd)セレクタを使用して、jQueryを使用してテーブル内の奇数行を選択する簡単な方法が2つあります。jQuery Odd:CSSまたはjQセレクタ?

$('table tr').filter(':odd') 
$('table tr:nth-child(odd)') 

各方法のメリットと欠点は何ですか?主に実行速度とブラウザサポートの面で不思議です。 http://docs.jquery.com/Browser_Compatibility.filter(':odd')との第1の方法はおそらく遅い

答えて

3

、それは追加のメソッド呼び出しを使用し、それが使用しているので、:jQueryのすべての現代っぽいブラウザーで作動するよう

+0

ブラウザでサポートされていないセレクタをjQueryが処理するかどうかはわかりませんでした。あなたはそれのためのソースへのリンクを持っていますか? :) – Joe

+0

@ジョー:それはすべてフロントページにあります:) – BoltClock

1

ブラウザのサポートは、問題ではありません非標準セレクタ。 jQueryはこの場合すべてを処理する必要があります。

2番目の方法は、セレクタAPIを実装し、擬似クラス:nth-child()をサポートする最新のブラウザでは、指定されたセレクタが有効なCSSであるため、速度が向上する可能性があるため、セレクタはjQueryではなく、 。しかし、他のブラウザでは、わかりませんが、少なくとも1つ少ないメソッド呼び出しがあるため、2番目のメソッドがより効率的であると確信しています。

いずれにしても、どちらの方法にも実質的(実用的)な利点または欠点はありません。実際、私は理論的にしか答えるつもりはありません - 私は何かをバックアップするベンチマークはありません。とにかく古いブラウザ用のセレクタpolyfills :nth-child()がブラウザの互換性を心配する必要はありません。