jQuery non consente di aggiungere un po 'di elementi in una sola volta a un oggetto jQuery, ma solo quando tali elementi sono puri elementi DOM, non oggetti jQuery stessi.
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
Quando si passa un array di oggetti jQuery jQuery()
, non sono "aperto" prima di aggiungerli all'oggetto risultato jquery.
Ricordare inoltre che il passaggio di un singolo oggetto jquery consente lo svolgimento della procedura.
>>> $($e1)
[div] // returns a jquery object
È interessante notare che, se mescoliamo jquery e oggetti DOM puri, solo gli oggetti puri sono operati:
>>> $([$e1, e2, $e3]).css('background-color', '#000');
Nota sopra di tale secondo elemento è un elemento DOM puro e il colore di sfondo viene applicato solo a quel secondo elemento.
La riga di fondo è: se si desidera aggiungere più elementi a un oggetto jquery in una sola volta, aggiungere oggetti DOM puri, non oggetti jQuery.
cosa sono $ el1 $ el2 e $ el3? Elementi Dom precedentemente scelti da jQuery? –
Perché non li si inserisce in un array? –
E come faccio a creare un oggetto jQuery da quell'array (elegantemente) – treecoder