2010-03-05 16 views
37

Sto scrivendo un'implementazione lista ordinabile in jQuery (b/c del famigerato problema scroll-in-div, nuove soluzioni per questo?). Tuttavia, non so come confrontare gli elementi (attivati ​​su mouse/mouseup) dopo che sono stati spostati in jQuery. In prototipo, era sempre ele.domNode.Come posso verificare se due elementi DOM jQuery avvolti sono uguali?

Questo è quello che sto cercando di realizzare in sostanza ...

<div id="cheese"></div> 
<div id="burger"></div> 

<script> 

// Some dom nodes wrapped in jquery 
var ele1 = $('#cheese'); 
var ele2 = $('#burger'); 
var ele3 = $('#burger'); 

// Is the dom node wrapped in ele1 (#cheese) the same as in ele2 (#burger)? 
if (ele1 == ele2) 
{ 
    // Should never be true 
} 

// Is the dom node wrapped in ele2 (#burger) the same as in el32 (#burger)? 
if (ele2 == ele3) 
{ 
    // Should always be true 
} 

</script> 
+0

di e-motiv qui è grande e non è menzionato su questa questione: http://stackoverflow.com/questions/2407825/how-to-compare-two-elements-in-jquery – billynoah

risposta

62

Un oggetto jQuery possono essere trattati come un array di elementi DOM prime.

è possibile confrontare gli elementi DOM prime come questo:

if(ele2[0] === ele3[0]) 
+0

questo funziona e sembra per essere il metodo preferito, grazie: s –

11

Confrontare gli elementi DOM all'interno del genere:

if (ele1.get(0) == ele2.get(0)) 
+0

anche questo metodo funziona, grazie! –

0

Questo è anche un modo possibile per risolvere questo problema. Puoi confrontare gli attributi id in quanto dovrebbero essere esattamente gli stessi nell'esempio sopra. risposta

ele1.attr("id") == ele2.attr("id"); //returns false 
ele2.attr("id") == ele3.attr("id"); //returns true 
+0

Non c'è nulla ottenuto dal confronto con 'id', e chiamare' attr' è certamente più lento della semplice indicizzazione in oggetti jQuery. – Louis

+0

Grazie per l'intuizione. Ho solo pensato di condividere una soluzione che funziona anche senza considerare le prestazioni rispetto ad altre soluzioni, dal momento che l'OP non ha detto che stava cercando la soluzione più veloce. – M7Jacks

Problemi correlati