2013-05-06 18 views
5

私はほとんどの初心者のWeb開発者のほとんどがjQueryを使いますが、もっと頻繁にクリーンなjを使い始めました。それは私がこのように行うことができます要素のクラスを取得する必要がある場合、たとえば、jQueryの範囲でクリーンなJSを使用するために神の実践されています:だからここから私の質問は要素の属性を取得する最も良い方法は何ですか?

jQuery('div#grid a').click(function(event){ 
    event.preventDefault(); 
    console.log(this.getAttribute('class')); 
    console.log(this.className); 
    console.log(jQuery(this).attr('class')); 
}); 

しかし、最善の方法は何ですか?

+6

「ベスト」を定義してください。パフォーマンス面では、 'className'属性に直接アクセスするのが最適です(関数が呼び出されず、オブジェクトが作成されません)。 – raina77ow

+2

...この場合、コードの長さと可読性にも最適です。もちろん、それはあなたの仲間の開発者が 'className'が何であるかを知る必要があることを意味し、jQueryのみの式は、そうでない人のためにもっと記述的です。 – Bergi

+0

正確です。それでも 'Element.className'はすべての既存の実装で' Element.getAttribute( 'class')と競合してしまいます。 ) – raina77ow

答えて

3

それは3の中で最速であるため、this.classNameを使用することをお勧めします。実行可能なデモは次のとおりです。jquery attr(class) vs js.className

classNameプロパティが最速のテストを実行した後に表示されます。

3

はい、jQueryスコープでクリーンjsを使用すると良いです。これはDOMとのネイティブな作業であり、より高速に動作します。

Perfomance Test

+0

ニース>> !!!デモ>>> – PraJen

2

同じことをするためにjQuery関数呼び出しを作成するのではなく、ネイティブスクリプトを使用してパフォーマンスの向上が常にあります。

しかし、この利得は、少数の要素に対しては知覚できません。したがって、トレードオフはより簡単になり、より読みやすいコード対UIにあまり影響を与えない可能性があります。

関連する問題