私はこのような何かをしようとした場合:2つのjQueryセレクタが同じ要素を指しているかどうかを確認するにはどうすればよいですか?
$(".foo") === $(".foo") // = false
を...私はfalseを得ます。代わりにこのクエリを試してみると、
$(".foo").get(0) === $(".foo").get(0) // = true
...私は本当です。この等価性をテストするための任意の簡潔な方法があるかどうか、私は、好ましくは、jQueryのに組み込まれて、思ったんだけど
{a:myObject} !== {a:myObject};
[myObject] !== [myObject];
myObject === myObject;
:ためだ
。私が書いた2番目の方法は、.foo
に一致する要素が1つしかない場合にのみ正しく動作します。ソリューションは、あらゆる量の要素に対して機能するはずです。
明らかに私が使用している実際の選択がより複雑であるため、".foo" === ".foo"
をチェックしたくありません。私はこの例のために単純化しました。 (例:私は$(this)
が$(".foo")
と同じものを選択していることを確認することをお勧めします。)
をあなたはここで、benekastahの答えをチェックアウトする必要があります彼の答えを反映デモです: 'であるので、(動作しません:http://jsfiddle.net/kAv4X/ – MacMac
@lolwutを) 'は、要素の少なくとも1つが他のセレクタと一致するかどうかをチェックするだけです(つまり、サブセットです)。 http://jsfiddle.net/dYAH3/を見てください(最初のアラートでは誤っているはずですが、それは真実です)。 – Senseful
この[回答](http://stackoverflow.com/a/3856290/989121)が最も正確であるようです。 – georg