2012-09-28 21 views
9

a caso solo per curiosità domanda:

Diciamo che per qualsiasi motivo ricevo un elemento di ritorno da una funzione

$(element) 

Ma io desidera rimuovere i $ (__) jQuery involucro di lasciare il regolare DOM Element:

element 

È possibile? (sono sicuro che sarebbe intelligente per testare $(element).length() per assicurarsi che non è più di 1 cosa dentro in anticipo troppo ...

jsFiddle

+0

'$ (elemento) .length' è molto meglio se si vuole verificare se ha più di 1 elemento. –

+0

Ah, questo è quello che intendevo digitare, non '.size()' finirà per chiamarlo comunque adesso? –

+0

Sì, ma usare '.size' è semplicemente una chiamata di funzione extra che non è necessaria. –

risposta

21
var firstElem = $(element)[0]; 

o

var firstElem = $(element).get(0); 

Chiamare get() senza un indice fornisce un array di elementi

Riferimento: jQuery get()

+0

Triste, sapevo di aver fatto '$ (elemento) [0]' troppo haha ​​... grazie a dio è venerdì ho bisogno di una pausa haha. Qualche ragione per usare '.get()' su '.toArray()', o viceversa? –

+0

@mcpDESIGNS: Giusto per essere chiari, non penso che epascarello stia effettivamente suggerendo la forma di '$ (elemento) [0]', che non ha senso usare. Avresti bisogno di '[0]' o '.get (0)' quando ti è stato dato un oggetto jQuery costruito in precedenza. –

+0

Sì, lo so che voi ragazzi intendevate che potete scomporlo con '[0]' il primo elemento. Apprezzo i ragazzi! –

6

Gli elementi DOM sono memorizzati come proprietà in indici numerici a base zero, in modo da accedervi come si farebbe per qualsiasi altro oggetto.

$jqObj[0]; 

o ottenere una gamma completa di elementi utilizzando toArray()

$jqObj.toArray(); 
Problemi correlati