si intento algo como esto:¿Cómo verifico si 2 selectores jQuery apuntan al mismo elemento (s)?
$(".foo") === $(".foo") // = false
... me sale falsa. Si, en cambio, intento esta consulta,
$(".foo").get(0) === $(".foo").get(0) // = true
... Me hago cierto.
Esto se debe a:
{a:myObject} !== {a:myObject};
[myObject] !== [myObject];
myObject === myObject;
Me pregunto si hay alguna manera sucinta para la prueba de esta igualdad, preferentemente integrado en jQuery. El segundo método que escribí solo funciona correctamente si hay como máximo un elemento que coincide con .foo
. La solución debería funcionar para cualquier cantidad de elementos.
Obviamente no quiero simplemente comprobar ".foo" === ".foo"
ya que las selecciones que estoy usando son más complicadas. Simplemente los simplifiqué para este ejemplo. (Por ejemplo, es posible que quiera comprobar que $(this)
es la selección de la misma cosa que $(".foo")
.)
Debe retirar la respuesta de benekastah, aquí es una demostración de que refleja su respuesta: http://jsfiddle.net/kAv4X/ – MacMac
@lolwut: que no funciona ya que es '() 'solo comprueba que * al menos uno de los elementos coincide con el otro selector (es decir, es un subconjunto). Eche un vistazo a: http://jsfiddle.net/dYAH3/ (debería decir falso en la primera alerta, pero dice verdadero). – Senseful
Esta [respuesta] (http://stackoverflow.com/a/3856290/989121) parece ser la más precisa. – georg