2010-03-05 12 views
37

Estoy escribiendo una implementación de lista ordenable en jQuery (b/c del infame problema scroll-in-div, ¿alguna solución nueva para esto?). Sin embargo, no sé cómo comparar los elementos (desencadenados en mousedown/mouseup) después de que hayan sido envueltos en jQuery. En prototipo, siempre fue ele.domNode.¿Cómo puedo comprobar si dos elementos DOM envueltos en jQuery son iguales?

Esto es lo que estoy tratando de lograr, en esencia ...

<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

de e-motiv aquí es grande y no se menciona en esta pregunta: ¿http://stackoverflow.com/questions/2407825/how-to-compare-two-elements-in-jquery – billynoah

Respuesta

62

Un objeto jQuery se puede tratar como una matriz de elementos DOM primas.

Puede comparar los elementos DOM primas como esto:

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

esto funciona y parece para ser el método preferido, gracias: s –

11

Compare los elementos DOM en el interior de esta manera:

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

este método también funciona, ¡gracias! –

0

Ésta es también una posible manera de resolver este problema. Puede comparar los atributos de id ya que deberían ser exactamente los mismos en su ejemplo anterior. respuesta

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

No se gana nada al comparar por 'id', y llamar' attr' es ciertamente más lento que simplemente indexar en objetos jQuery. – Louis

+0

Gracias por su visión. Solo pensé en compartir una solución que también funciona sin tener en cuenta el rendimiento en comparación con otras soluciones, ya que OP no dijo que estaba buscando la solución más rápida. – M7Jacks

Cuestiones relacionadas