jQuery nie pozwalają, aby dodać kilka elementów na raz do obiektu jQuery, ale tylko wtedy, gdy elementy te są czyste elementy DOM, a nie obiekty jquery same.
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
Kiedy mijamy tablicę obiektów jQuery jQuery()
nie są one „rozpakować” przed dodaniem ich do obiektu wynik jQuery.
Pamiętaj jednak, że podanie pojedynczego obiektu jquery powoduje rozpakowanie.
>>> $($e1)
[div] // returns a jquery object
Co ciekawe, jeśli mieszamy jQuery i czystych obiektów DOM, tylko czyste obiekty są eksploatowane na:
>>> $([$e1, e2, $e3]).css('background-color', '#000');
nocie powyżej tego drugiego elementu jest czystym elementem DOM i kolor tła jest stosowane tylko do tego drugiego elementu.
Najważniejsze to: jeśli chcesz dodać wiele elementów jednocześnie do obiektu jQuery, dodaj czysty obiekt DOM, a nie obiekty jquery.
czym są el1 $ el2 i el3 $? Elementy Dom wybrane wcześniej przez jQuery? –
Dlaczego nie popchniesz ich w tablicy? –
A jak zrobić obiekt jQuery z tej tablicy (elegancko) – treecoder