কীভাবে jQuery- তে একটি পরিচিত ক্লাস সহ পিতামাতাকে খুঁজে পাবেন?


243

আমার এর একটিতে এর আরও <div>অনেকগুলি রয়েছে <div>, প্রত্যেকটি আলাদা নীড়ের স্তরে। প্রতিটি শিশুকে <div>একটি সনাক্তকারী দেওয়ার পরিবর্তে আমি মূলটিকে শনাক্তকারীকেই দেই <div>। এখানে একটি উদাহরণ:

<div class="a" id="a5">
  <div class="b">
    <div class="c">
      <a class="d">
      </a>
    </div>
  </div>
</div>

আমি ক্লাসে প্রতিক্রিয়া জানাতে jQuery তে কোনও ফাংশন লিখি dএবং আমি এর পিতামাতার, শ্রেণীর জন্য আইডিটি খুঁজতে চাই, aআমি কীভাবে এটি করব?

আমি কেবল করতে পারি না $('.a').attr('id');, কারণ একাধিক ক্লাস রয়েছে a। আমি এর পিতামাতার পিতামাতার পিতামাতার আইডি খুঁজে পেয়েছি তবে এটি দেখতে খুব খারাপ ডিজাইনের, ধীর এবং খুব বহুবর্ষীয় নয় (ক্লাসের জন্য আইডি সন্ধানের জন্য আমাকে আলাদা কোড লিখতে হবে c)।

উত্তর:


490

Assuming যে thisহয় .d, আপনি লিখতে পারেন

$(this).closest('.a');

closestপদ্ধতি আপনার উপাদান যে নির্বাচক সাথে মেলে এমন গভীরতম পিতা বা মাতা ফেরৎ।


47
মনে রাখবেন যে সামান্য ধরা আছে: যদি আপনার প্রারম্ভিক উপাদানটি খুব বেশি কোয়েরির সাথে মেলে তবে আপনি পরিবর্তিত পরিবর্তে পিতামণ্ডলীয় উপাদানটি পাবেন না। এটি হতে পারে বা চাই আচরণ নয়। যদি তা না হয় তবে আমি এটির পুনঃসংশোধন করব: $ (এটি)। পিতা-মাতা ()। নিকটতম ('। ক');
রিসর্ড

1
খুব উপকারী. আমি সর্বদা $ (এটি)। পিতামাতা ()। পিতামাতা ()। পিতামাতা () করতে এবং আমি জানতাম এর থেকে আরও ভাল সমাধান পাওয়া যায়।
ওয়াং'ল পাখরিন

28

JQuery পিতামাতার ফাংশনে একটি নির্বাচক পাস করুন :

d.parents('.a').attr('id')

হুম সম্পাদনা করুন , স্লাকসের উত্তরটি যদি আপনি কেবলমাত্র আপনার নির্বাচকের সাথে মেলে এমন নিকটতম পূর্বসূরি চান তবে এর উত্তর আরও ভাল।


8

প্রদত্ত নির্বাচকটির সাথে সমস্ত পিতামাতাকে পেতে আপনি পিতামাতার () ব্যবহার করতে পারেন ।

বিবরণ: প্রতিটি উপাদানটির পূর্বপুরুষদের সাথে মিলিত উপাদানগুলির বর্তমান সেটটিতে পান, selectচ্ছিকভাবে কোনও নির্বাচক দ্বারা ফিল্টার করা হয়।

তবে পিতামাতা () উপাদানটির প্রথম পিতামাতা পাবেন।

বিবরণ: মিলিত উপাদানগুলির বর্তমান সেটে প্রতিটি উপাদানটির পিতামাতার জন্য পান, কোনও নির্বাচক দ্বারা ফিল্টার করা।

jQuery পিতা বা মাতা () বনাম পিতামাতা ()

এবং সেখানে .parentsUntil () যা আমার মনে হয় সেরা হবে।

বিবরণ: প্রতিটি উপাদানের পূর্বপুরুষদের সাথে মিলিত উপাদানগুলির বর্তমান সেটে প্রাপ্ত হন, তবে নির্বাচক দ্বারা মেলে এমন উপাদানটি অন্তর্ভুক্ত না করে।


তিনি কেবল একক পিতা বা মাতা চান, তাই তাকে কল করা উচিত closest
এসএলএক্স

2

.ParentsUntil () ব্যবহার করুন

$(".d").parentsUntil(".a");

এটি ম্যাচিং, প্যারেন্ট উপাদানগুলিতে পৌঁছানো পর্যন্ত প্রতিটি প্যারেন্ট উপাদানকে লক্ষ্য করে target
ডাস্টিন হালস্টেড

0

উপরে @ রিসর্টের মন্তব্যগুলি থেকে উত্তোলন করা হয়েছে। এইটি আমার পক্ষে কাজ করেছে এবং প্রশ্নের সাথে আরও ঘনিষ্ঠভাবে ঝুঁকছে।

$(this).parent().closest('.a');

ধন্যবাদ

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