12

いくつかの質問:

  1. 通常のjavascriptループ(一連の要素をループする)は、jQueryを使用するよりも高速/効率的ですeach()か?

  2. もしそうなら、通常のjavascriptループとして次のコードを書くための最良の方法は何ですか?

$('div').each(function(){ //... })

4

4 に答える 4

14

はい、を削除するeach()とパフォーマンスが少し向上します。これは、要素のリストのforループを作成する方法です。

var divs = $('div');

for(var i = 0; i < divs.length; i++){
    var thisDiv = divs[i]; // element

    var $thisDiv = $(divs[i]); // jquery object

    // do stuff
}
于 2012-08-24T21:42:10.837 に答える
5
var divs = document.getElementsByTagName('div'),
    l = divs.length, i, cur;

for(i=0; i<l; i++) {
    cur = divs[i];
    // do stuff with cur here
}

効率の名目でjQueryを削除するための道を進んでください。このコードは、同等のjQueryよりも約50倍高速です。

于 2012-08-24T21:44:01.180 に答える
1

最初の質問はすでに回答されているため、2 番目の質問に回答します。

私もこれに興味があり、Gabe の例を使用して違いを見つけるために 2 つのベンチマークを行うことにしました。答えは、最終結果として jQuery オブジェクトが必要な場合です。

それらはまったく同じように機能します。

http://jsperf.com/jquery-each-vs-native-selectors

明らかに、Firefox は jQuery バージョンをより速く見つけます。

于 2014-08-20T10:55:51.623 に答える