これをより簡潔な方法で行うことはできますか?
var src = $('div');
var dest = [];
for ( var i = 0; i < src.length; i++)
dest[i] = $(src[i]);
私はこれしか考えられませんが、これはまだかなり冗長です。
var dest = [];
$('div').each(function() { dest.push($(this)); });
jQuery はこの場合により良いものを提供しますか? 見つからない。
コメントで繰り返される質問のいくつかに対処するには:
src[i]
はすでに jQuery オブジェクトなので、呼び出しても何も起こりjQuery(src[i])
ません。
いいえ、これは単純な DOM ノードであり、jQuery ラッピングはまったくありません。
好奇心から、なぜそれをするのですか?
後で、各要素を個別にかなりいじる必要があるからです。たとえば、それらすべてを調べて最も高いものを見つけ、残りを同じ高さに設定する必要があります。その後、すべての幅を取得し、それに基づいてレイアウトを実行する必要があります (各要素は、他の要素の幅に基づいて x & y 座標を取得します)。等。
jQuery が提供する簡略関数を使用できれば、これらすべての操作をより簡単に行うことができますが、それは、各要素を個別にラップする必要があることを意味します (それらすべて$('div')
のラッパーを返すだけです)。また、すべての要素を複数回訪問する必要があるため、訪問のたびにではなく、各要素を 1 回だけラップすることでパフォーマンスを向上させたいと考えています。