Если я попробую что-то вроде этого:
$(".foo") === $(".foo") // = false
... я получу ложь. Если я вместо этого попробую этот запрос,
$(".foo").get(0) === $(".foo").get(0) // = true
... я получу истину.
Это потому, что:
{a:myObject} !== {a:myObject};
[myObject] !== [myObject];
myObject === myObject;
Мне интересно, есть ли какой-нибудь сжатый способ проверить это равенство, предпочтительно встроенный в jQuery. Второй метод, который я написал, работает правильно, только если есть не более одного элемента, который соответствует .foo
. Решение должно работать для любого количества элементов.
Очевидно, я не хочу просто проверять ". Foo" === ".foo"
, поскольку фактические выделения, которые я использую, более сложны. Я просто упростил их для этого примера. (Например, я могу проверить, что $ (this)
выбирает то же самое, что и $ (". Foo")
.)