Bởi vì lý do tương tự mà $('#a) == $('#a')
là false
Mỗi lần jQuery builts một bộ của các phần tử, nó trả về một đối tượng mới (ngay cả khi đối tượng jQuery kết thúc tốt đẹp các phần tử giống nhau). Trong JavaScript, chỉ chỉ thời gian một đối tượng bằng với đối tượng khác, là nếu nó chính xác là cùng một đối tượng;
var a = {
foo: 1
};
var b = {
foo: 1
};
(a == b) // false;
Để sửa lỗi này, bạn có thể so sánh các đối tượng DOM trực tiếp (hoặc bằng cách sử dụng .get(i)
hoặc sử dụng các đối tượng jQuery như một mảng ([i]
)), hoặc bạn sẽ có được sử dụng phương pháp is()
;
if ($('.foo').get(i) == $('.bar').get(i));
if ($('.foo')[0] == $('.bar')[0]);
if ($('.foo').is($('.bar')); // or even...
if ($('.foo').is('.bar'));
cảm ơn rất nhiều :) – abrad45