मुझे पहले इस पर काम करने का संदेह होगा:
if ($('#element') == $('#element')) alert('hello');
लेकिन ऐसा नहीं है। यदि तत्व समान हैं तो कोई परीक्षण कैसे करेगा?
जवाबों:
1.6 के रूप में आप अब बस कर सकते हैं:
$element1.is($element2)
यह काम करना चाहिए:
if ($(this)[0] === $(this)[0]) alert('hello');
ऐसा होना चाहिए
if (openActivity[0] == $(this)[0]) alert('hello');
$.is
या केवल
if (openActivity[0] == this) alert('hello');
(एक नए jQuery के उदाहरण के बिना ;-)
जैसा कि किसी ने पहले ही बताया था, दो अलग-अलग क्षणों में लिपटे एक ही एचटीएमएल तत्व दो अलग-अलग jQuery उदाहरण उत्पन्न करते हैं, इसलिए वे कभी भी बराबर नहीं हो सकते।
इसके बजाय, लिपटे हुए एचटीएमएल तत्वों की तुलना इस तरह से की जा सकती है, क्योंकि वे जिस मेमोरी स्थान पर रहते हैं, वह वैसा ही होता है यदि यह एचटीएमएल तत्व है, तो:
var LIs = $('#myUL LI');
var $match = $('#myUL').find('LI:first');
alert(LIs.eq(0) === $match); // false
alert(LIs.get(0) === $match.get(0)) // TRUE! yeah :)
सादर!
9 साल बाद, jQuery के बिना
यदि दो तत्व समान हैं, तो दो तत्वों में समान सूचक होना चाहिए। इस प्रकार,
document.body === document.body // true
document.querySelector('div') === document.querySelector('div') // true
document.createElement('div') === document.createElement('div') // false
जैसे सिल्की या सैंटी ने कहा, एक यूनिक आईडी या क्लास टेस्ट करने का सबसे आसान तरीका होगा। कारण यदि आपके बयानों की तरह काम नहीं करते हैं तो आप उम्मीद करेंगे क्योंकि यह 2 वस्तुओं की तुलना कर रहा है और यह देख रहा है कि क्या वे स्मृति में समान वस्तु हैं।
चूँकि यह हमेशा $ (इस) द्वारा बनाई जा रही एक नई वस्तु है, वे कभी भी एक दूसरे के बराबर नहीं हो सकते। इसलिए आपको ऑब्जेक्ट की संपत्ति पर परीक्षण करना होगा। यदि कोई खुला तत्व आपको अलग-अलग सामग्री की गारंटी दे सकता है जिसकी आप जांच कर सकते हैं, तो आप कोई अनोखी आईडी / क्लास नहीं ले सकते।