0

要素がDOMに存在するかどうかを確認したいときはいつでも、次のコードを使用します。

if($('#target').length){
    // do stuff.
}

これはうまく機能し、クライアントサイトで非常によく使用します。

質問:この方法はどれくらい速いですか?これがプロジェクトで頻繁に使用される場合、速度にはどのような影響がありますか?

4

3 に答える 3

4

if(document.getElementById('target'))代わりに使用する方がはるかに良いでしょう。JavaScriptは常にjQueryよりも高速です(jQueryはカーペットの下に隠されたJavaScriptの集まりであるため)

編集:あなたがそれをたくさん使うならば、あなたはカスタム関数を作ることができます:

function idExists(id) {return !!document.getElementById(id);}
于 2012-08-30T00:01:30.553 に答える
1

ネイティブJSは、jQueryを介したクエリよりも常に高速です。あまり友好的ではないかもしれません。

jsperf.comを介してクエリを実行した後、native(querySelectorAll)はjQueryより57%高速です

ただし、idを使用する場合、jQueryはquerySelectorAllよりも高速になります。idの場合はdocument.getElementById、要素の存在をテストするために使用します。

http://jsperf.com/jquery-obj-length

于 2012-08-30T00:04:53.360 に答える
0

JQueryコンテキストでDOM要素を検索してみてください。

要素u検索が言う場合、入力コントロールはテーブル内にあり、コンテキストとしてテーブルを渡します。

簡単な例:

$(function(){

var name= $('#Name','#mytab').val();

    alert(name);
});

jqueryエンジンは、フォーム全体ではなく、「mytab」内の要素「Name」を検索します

このフィドルリンクをたどる:http://jsfiddle.net/NzbJr/10/

于 2012-08-30T12:42:51.410 に答える