আপনি কীভাবে jQuery অবজেক্টের তুলনা করবেন?


101

সুতরাং আমি কীভাবে দুটি jQuery অবজেক্টের তুলনা করব তা জানার চেষ্টা করছি, পিতামাতার উপাদানটি কোনও পৃষ্ঠার মূল কিনা see

আমার যা আছে তা এখানে:

if ( $(this).parent() === $('body') ) ...

আমি জানি এটি ভুল, তবে যদি আমি বুঝতে পারি যে আমি কী করছি, তারা কি আমাকে এটি করার সঠিক উপায়ের দিকে নির্দেশ করতে পারে?


2
var $parent = $(this).parent(), $body = $('body'); var theSame = $parent.is($body); api.jquery.com/is/#is-jQuery-object
ভিক্টর

1
। $ (এই) .parent () হল ($ ( 'শরীর')); // অথবা $ ('দেহ') ছাড়াও অন্য কোনও কিছুর জন্য চেক করুন stackoverflow.com/a/6986013/112100
ওমু

উত্তর:


158

আপনাকে কাঁচা ডিওএম উপাদানগুলির তুলনা করতে হবে, যেমন:

if ($(this).parent().get(0) === $('body').get(0))

অথবা

if ($(this).parent()[0] === $('body')[0])

1
এটি কেবলমাত্র সমতা নিশ্চিত করবে যদি jQuery অবজেক্টটি একটি একক ডিওএম উপাদানের সাথে মেলে। যদি একাধিক মিল থাকে তবে আপনার প্রতিটির সাথে তুলনা করার জন্য আপনার কোনও ধরণের লুপ দরকার।
জিমি কুয়াদ্রা

1
@ জিমি, হ্যাঁ তবে এটি ওপি প্রয়োজনীয়তার জন্য যথেষ্ট, তিনি কেবল জানতে চান "... যদি পিতামণ্ডলটি শরীর হয় ..."
সিএমএস

2
সংক্ষিপ্ত করতে পারেন: যদি (এটি.পরেণোড === ডকুমেন্ট.বডি);

আইএমএইচও, এটি দরকারী হতে পারে http://learn.jquery.com/using-jquery-core/jquery-object/#not-all-jquery-objects-are-created
আজিব.কেপি


18

লুপিং প্রয়োজন হয় না, একক প্রথম নোড পরীক্ষা করা প্রয়োজন হয় না। তারা একই দৈর্ঘ্য এবং অভিন্ন নোডগুলি ভাগ করে নিচ্ছে তা নিশ্চিত করার চেয়ে খুব বেশি কিছু দরকার নেই। এখানে একটি ছোট কোড স্নিপেট। এমনকি আপনি এটি নিজের ব্যবহারের জন্য একটি jquery প্লাগইনে রূপান্তর করতে চাইতে পারেন।

jQuery(function($) {
  // Two separate jQuery references
  var divs = $("div");
  var divs2 = $("div");

  // They are equal
  if (divs.length == divs2.length && divs.length == divs.filter(divs2).length) {         

  // They are not
  } else {}
});

এটি কি বলে না যে নিম্নলিখিত ডিভগুলি সমান? <div>abc</div> <div>def</div>
চার্লি শ্লিয়েসার

না, ফিল্টারটি সমান নয় এমন ডিওএম উপাদানগুলি পাস করবে না।
tbranyen

2

আমি এই উত্তরগুলিতে হোঁচট খেয়েছি এবং ভাবছিলাম যে কোনটি ভাল। এটি সব আপনার প্রয়োজনের উপর নির্ভর করে তবে টাইপ করা, পড়া এবং সম্পাদন করা সবচেয়ে সহজ অবশ্যই। আমি সিদ্ধান্ত নেওয়ার জন্য পারফ টেস্টকেসটি এখানে দিয়েছি।

http://jsperf.com/jquery-objects-comparison


কাঁচা ডোম উপাদানসমূহ 2 আমার জন্য দ্রুততম প্রতিবেদন করছে: প্রতিবেদন করা প্রতিটি ব্রাউজারের ক্ষেত্রেও একই রকম দেখাচ্ছে।
কাইল হটচিস

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