Начиная с jQuery 1.6, вы можете использовать .is
.Ниже приведен ответ более года назад ...
var a = $('#foo');
var b = a;
if (a.is(b)) {
// the same object!
}
Если вы хотите увидеть, действительно ли две переменные являются одним и тем же объектом, например:
var a = $('#foo');
var b = a;
...то вы можете проверить их уникальные идентификаторы.Каждый раз, когда вы создаете новый объект jQuery, он получает идентификатор.
if ($.data(a) == $.data(b)) {
// the same object!
}
Хотя, то же самое может быть достигнуто с помощью простого a === b
, приведенное выше, по крайней мере, может показать следующему разработчику именно то, что выпроверка на.
В любом случае, это, вероятно, не то, что вы ищете.Если вы хотите проверить, содержат ли два разных объекта jQuery один и тот же набор элементов, вы можете использовать это:
$.fn.equals = function(compareTo) {
if (!compareTo || this.length != compareTo.length) {
return false;
}
for (var i = 0; i < this.length; ++i) {
if (this[i] !== compareTo[i]) {
return false;
}
}
return true;
};
Источник
var a = $('p');
var b = $('p');
if (a.equals(b)) {
// same set
}