По той же причине, что $('#a) == $('#a')
равно false
Каждый раз, когда jQuery создает набор элементов, он возвращает новый объект (даже если объект jQuery переносит те же элементы, что и другой). В JavaScript время only объекта равно другому, если это точно такой же объект;
var a = {
foo: 1
};
var b = {
foo: 1
};
(a == b) // false;
Чтобы исправить это, вы можете либо сравнить объекты DOM напрямую (либо с помощью .get(i)
, либо с помощью объекта jQuery, например, массива ([i]
)), либо использовать is()
метод;
if ($('.foo').get(i) == $('.bar').get(i));
if ($('.foo')[0] == $('.bar')[0]);
if ($('.foo').is($('.bar')); // or even...
if ($('.foo').is('.bar'));