0

jQueryの関数を使おうとしてaddいますが、3000以上のdom要素のオブジェクトをマージするとフリーズします。これを達成するためのより速い方法はありますか?

var a = [];
a[0] = $('small');
a[1] = $('.no');
a[2] = $('.yes');
//a is array of jQuery objects

//make b an empty jQuery object. loop through a, adding each to b
var b = $();
for(var i in a) {
    b = b.add(a[i]);
}
//browser freezes for a bit
console.log(b);

編集:なぜ私がこれほど多くのDOM要素を持っているのか疑問に思わないでください、私は書いているjQueryプラグインをストレステストしています:D

4

2 に答える 2

5

私のコメントにもかかわらず、あなたはただすることができます

$('small, .no, .yes')

于 2012-08-07T01:34:05.900 に答える
1

これは役立つかもしれません:API:http ://api.jquery.com/jQuery.merge/

$.merge( [0,1,2], [2,3,4] )

私が何かを逃している場合は、lemmeに知らせてください。このAPIは、マージに役立つはずです。:)

この$.merge()操作は、2つの配列のすべての要素を含む配列を形成します。配列内のアイテムの順序は保持され、2番目の配列のアイテムが追加されます。$ .merge()関数は破壊的です。最初のパラメーターを変更して、2番目のパラメーターからアイテムを追加します。

var a = [];
a[0] = $('small');
a[1] = $('.no');
a[2] = $('.yes');

// now to merge 2 arrays

$.merge( a, b) // a & b are arrays.
于 2012-08-07T01:34:55.057 に答える