2011-01-24 1 views
0

I'amを使用してDOMを歩いているとき: enter image description here
は、例えば最初のセルを取るが、それはクラス属性「とは、細胞のR1 C1」になり、r1は最初の行を意味しますc1は最初の列を意味し、その後、私は行全体を制御するために、このようなコードを使用します。MooToolsは:どのようにパフォーマンスについてのグリッドクラスの書き込もうとcssクラス

gridContainer.getElements('.r1').addClass('selected'); 

ので、私の質問は:良い練習はこのようにやっていることでしょうか?

答えて

1

は、ブラウザとmootoolsのバージョンによって異なります。

既存のコードをそのまま使用したい場合は、.getElements("td.r1")を使用してください。修飾されたセレクタは、getElementsByClassNameとquerySelectorAllのないブラウザに適しています。

私はMooToolsはコアおよび(V1.3用)スリックチームのファビオ・ミランダ・コスタとのインタビューで同様の質問をし、あなたはここで彼の返事(下を!)読むことができます:http://fragged.org/intermoos-part-6-fabio-miranda-costa-gets-slick_1213.html

あなたを救うためにクリック、今ツルツルとのより良い練習です:

// 1 
$$("#someid div.something"); 
// or 2 
document.id("someid").getElements("div.something"); 

は彼の答えだった:

最初の例の場合:

  • ブラウザはquerySelectorAllメソッドを持っている場合は、ブラウザがそれを持っていない場合は、スリック エンジンに短いことが 文書を行います、それを検出し、離れてそれを右 を使用し、雷
  • 速くなります。 getElementById( 'someid')。getElementsByTagName( 'div') そして見つかった各ノードについて、 は クラス 'something'の存在をチェックします。

第二の例:すべてのブラウザ

  • 、それはID「someid」で要素をつかむであろう。
  • ブラウザにquerySelectorAllがある場合は、この メソッドを使用して、 'something'クラスのすべてのdivを 'someid' コンテキストから取得します。
  • ブラウザは、それが見つかったノードのそれぞれについて、「someid」コンテキストと からgetElementsByTagNameの(「DIV」) メソッドを使用します持っていない場合、それは意志クラス 「何か」の存在を チェック。

ので、見られるように、最初の1は、ブラウザのほとんどの より速く、 をお勧めしますとなります。この時点から、 Firefox、Safari、Chrome、 OperaとIE> = 8の場合は、 querySelectorAll関数があります。

+0

私たちはIE6&7、hahahaを殺すように強制しています。 – kuangfuking

+0

ああ!ありがとう、私はもう心配しないでください。 – kuangfuking

関連する問題