JQuery 1.6'dan beri kullanabilirsiniz .is. Aşağıda bir yıldan uzun bir süre önce cevap ...
var a = $('#foo');
var b = a;
if (a.is(b)) {
// the same object!
}
İki değişkenin gerçekten aynı nesne olup olmadığını görmek istiyorsanız, örneğin:
var a = $('#foo');
var b = a;
... benzersiz kimliklerini kontrol edebilirsiniz. Her yeni jQuery nesnesi oluşturduğunuzda bir kimlik alır.
if ($.data(a) == $.data(b)) {
// the same object!
}
Yine de, aynı şey basit bir a === b , ancak yukarıdakiler en azından bir sonraki geliştiriciye tam olarak ne için test ettiğinizi gösterebilir.
Her durumda, muhtemelen peşinde değilsiniz. İki farklı jQuery nesnesinin aynı öğe kümesini içerip içermediğini kontrol etmek isterseniz, bunu kullanabilirsiniz:
$.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;
};
Kaynak
var a = $('p');
var b = $('p');
if (a.equals(b)) {
// same set
}
A.selector === B.selector && A.context === B.context. Genellikle bağlam her zaman aynı olacaktır, bu yüzden sadece seçiciyi düşünmeliyiz.