jQuery では、多数の要素を一度に jquery オブジェクトに追加できますが、それらの要素が純粋な DOM 要素であり、jquery オブジェクト自体ではない場合に限られます。
var $e1 = $('#x'),
$e2 = $('#y'),
$e3 = $('#z');
var e1 = $e1[0],
e2 = $e2[0],
e3 = $e3[0];
>>> $( [$el, $e2, $e3] ) // does not work
[[div], [div], [div]] // jquery object that contains other jQuery objects
>>> $( [el, e2, e3] ) // works
[div, div, div] // jquery object that contains pure DOM objects
jquery オブジェクトの配列を に渡すjQuery()
と、結果の jquery オブジェクトに追加する前に「ラップ解除」されません。
ただし、1 つの jquery オブジェクトを渡すと、ラップ解除が行われることにも注意してください。
>>> $( $e1 )
[div] // returns a jquery object
興味深いことに、jquery と純粋な DOM オブジェクトを混在させると、純粋なオブジェクトのみが操作されます。
>>> $( [$e1, e2, $e3] ).css('background-color', '#000');
上記の 2 番目の要素は純粋な DOM 要素であり、背景色はその 2 番目の要素にのみ適用されることに注意してください。
要するに、jquery オブジェクトに一度に複数の要素を追加する場合は、jquery オブジェクトではなく、純粋な DOM オブジェクトを追加することです。