দুটি উপাদান একই হলে পরীক্ষা করুন


87

আমি প্রথমে এটি কাজ করতে সন্দেহ করব:

if ($('#element') == $('#element')) alert('hello');

তবে তা হয় না। উপাদানগুলি একই হলে কীভাবে একটি পরীক্ষা করা যায়?

উত্তর:


139

Jquery 1.6 হিসাবে আপনি এখন সহজভাবে করতে পারেন:

$element1.is($element2)

7
এটি জ্যাকুরির সাম্প্রতিক সংস্করণগুলির সেরা উত্তর।
ক্রিস জয়েস

আরেকটি আমি ইচ্ছা করি আমি প্রতিবারের জন্য একই প্রশ্নটি গুগলিং এবং এই উত্তরটি সন্ধান করতে পেরেছি
ফ্রিফালার

75

এই কাজ করা উচিত:

if ($(this)[0] === $(this)[0]) alert('hello');

সুতরাং এটি করা উচিত

if (openActivity[0] == $(this)[0]) alert('hello');

4
আপনার প্রথম উদাহরণটি সঠিকভাবে আয়না করতে === না == হওয়া উচিত?
প্রুপ্রাস

4
এই উত্তরটি জ্যাকুরির পুরানো সংস্করণে সঠিক হতে পারে তবে বেশিরভাগ লোকেরা সম্ভবত এমন একটি সংস্করণ ব্যবহার করছেন যা সমর্থন করে$.is
ক্রিস জয়েনেস


12

যেমনটি ইতিমধ্যে কেউ বলেছে, দুটি ভিন্ন মুহুর্তে মোড়ানো একই এইচটিএমএল উপাদান দুটি পৃথক jQuery উদাহরণ উত্পন্ন করে, তাই তারা কখনই সমান হতে পারে না।

পরিবর্তে, মোড়ানো এইচটিএমএল উপাদানগুলির সাথে সেভাবে তুলনা করা যেতে পারে, যেহেতু তারা যে মেমোরি অবস্থানটি ধারণ করে এটি একই HTML উপাদান হিসাবে একই, তাই:

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 :)

শুভেচ্ছান্তে!


5

আমি খোলা চিহ্নিত করার জন্য অ্যাডক্লাস () ব্যবহার করব এবং আপনি এটি সহজে পরীক্ষা করতে পারেন।


3

9 বছর পরে, jQuery ছাড়াই

যদি দুটি উপাদান একই হয় তবে দুটি উপাদানের অবশ্যই একই পয়েন্টার থাকতে হবে। এইভাবে,

document.body === document.body // true
document.querySelector('div') === document.querySelector('div') // true
document.createElement('div') === document.createElement('div') // false

0

সিল্কি বা সান্টি যেমন বলেছিল, একটি অনন্য আইডি বা শ্রেণি পরীক্ষা করার সহজতম উপায় হবে। আপনার যদি বিবৃতিগুলি আপনার প্রত্যাশার মতো কাজ না করে তা কারণ এটি 2 টি বস্তুর তুলনা করে এবং মেমোরিতে একই জিনিস কিনা তা দেখার জন্য।

যেহেতু always (এটি) দ্বারা সর্বদা এটি একটি নতুন অবজেক্ট তৈরি হয়, তারা কখনই একে অপরের সমতুল্য হতে পারে না। এজন্য আপনাকে অবজেক্টটির কোনও সম্পত্তি পরীক্ষা করতে হবে। আপনি যদি কোনও ওপেনঅ্যাক্টিভিটি উপাদানটির বিরুদ্ধে পরীক্ষা করতে পারেন এমন আলাদা আলাদা সামগ্রী থাকার গ্যারান্টি দেওয়া হয় তবে আপনি কোনও অনন্য আইডি / শ্রেণি দিয়ে পালাতে পারবেন না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.