উত্তর:
দ্বিতীয় সন্তান ধরুন:
$(t).children().eq(1);
বা, দ্বিতীয় সন্তানকে ধরুন <td>
:
$(t).children('td').eq(1);
find()
jQuery পদ্ধতিতে কাজ করে? মতই $(t).find('td').eq(1)
দ্বিতীয় পেতে <td>
, যদি t
একটা টেবিল ছিল, বলে, এবং আমি চেয়ে বেশি 1 নোড নিচে দেখুন প্রয়োজন?
.children('td').eq(1)
কোনও কারণে কাজ করতে পারিনি , তবে .find('td').eq(1)
ঠিক কাজ করেছি।
এখানে এমন একটি সমাধান রয়েছে যা সম্ভবত কোডে পড়ার জন্য আরও স্পষ্ট:
আনর্ডারড তালিকার ২ য় সন্তান পেতে:
$('ul:first-child').next()
এবং আরও বিশদযুক্ত উদাহরণ: এই কোডটি 'মাই_লিস্ট' হিসাবে চিহ্নিত উল-এর 2 য় শিশু উপাদানটির 'শিরোনাম' বৈশিষ্ট্যের পাঠ্য পেয়েছে:
$('ul#my_list:first-child').next().attr("title")
এই দ্বিতীয় উদাহরণে, আপনি নির্বাচকের শুরুতে 'উল' থেকে মুক্তি পেতে পারেন , কারণ এটি অনর্থক, কারণ কোনও আইডি একক পৃষ্ঠায় অনন্য হওয়া উচিত। এটি কেবল উদাহরণে স্বচ্ছতা যোগ করার জন্য।
পারফরম্যান্স এবং মেমোরিতে নোট করুন , এই দুটি উদাহরণ ভাল পারফরম্যান্ট, কারণ তারা জেকুরি তৈরি করে না এমন উল উপাদানগুলির একটি তালিকা সংরক্ষণ করে যা পরে ফিল্টার করা উচিত।
ul
যাতে আমাদের এটির অনুসন্ধান করতে হবে না।
এটা কেমন:
$(t).first().next()
উত্তরটি দেখতে কত সুন্দর দেখাচ্ছে তা ছাড়া আপনার কোডটির পারফরম্যান্স সম্পর্কেও আপনাকে অবশ্যই একটি চিন্তা দিতে হবে। সুতরাং, পরিবর্তনশীলটির ঠিক কী আছে তা জানাও আপেক্ষিক $(t)
। এটি একটি অ্যারে <TD>
বা এটি একটি <TR>
নোড এর <TD>s
ভিতরে বেশ কয়েকটি আছে? পয়েন্টটি আরও চিত্রিত করার জন্য, <ul>
50 টি <li>
শিশু সহ একটি তালিকায় jscreen স্কোরগুলি দেখুন :
$(t).first().next()
পদ্ধতি দ্বারা পর্যন্ত, এখানে দ্রুততম হয়।
তবে, অন্যদিকে, আপনি যদি <tr>
নোড নেন <td>
এবং বাচ্চাদের সন্ধান করেন এবং একই পরীক্ষা চালান, ফলাফলগুলি একই রকম হবে না।
আশা করি এটা সাহায্য করবে. :)
আমি এটি এখানে উল্লিখিত দেখতে পাই নি, তবে আপনি সিএসএস স্পেস সিলেক্টরও ব্যবহার করতে পারেন। দস্তাবেজগুলি দেখুন
$('#parentContainer td:nth-child(2)')
JQuery পদ্ধতি ব্যবহার করা ছাড়াও, আপনি cells
যে <tr>
দেশি সংগ্রহটি দেয় তা আপনি ব্যবহার করতে পারেন ।
$(t)[0].cells[1].innerHTML
ধরে t
নেওয়া একটি ডিওএম উপাদান, আপনি jQuery অবজেক্ট তৈরিকে বাইপাস করতে পারেন।
t.cells[1].innerHTML
অবাক করে দিয়ে দেখেছি যে কেউই এর জন্য স্থানীয় জেএস উপায়ের উল্লেখ করেনি ..
কেবল পিতামাতার উপাদানটির children
সম্পত্তি অ্যাক্সেস করুন । এটি শিশুদের উপাদানগুলির একটি লাইভ এইচটিএমএল সংগ্রহ সংগ্রহ করবে যা একটি সূচক দ্বারা অ্যাক্সেস করা যায়। যদি আপনি দ্বিতীয় সন্তান পেতে চান:
parentElement.children[1];
আপনার ক্ষেত্রে, এর মতো কিছু কাজ করতে পারে: (উদাহরণ)
var secondChild = document.querySelector('.parent').children[1];
console.log(secondChild); // <td>element two</td>
<table>
<tr class="parent">
<td>element one</td>
<td>element two</td>
</tr>
</table>
আপনি CSS3 নির্বাচনকারীদের / querySelector()
এবং ব্যবহারের সংমিশ্রণটিও ব্যবহার করতে পারেন :nth-of-type()
। এই পদ্ধতিটি কিছু ক্ষেত্রে আরও ভাল কাজ করতে পারে, কারণ আপনিও এ ক্ষেত্রে উপাদানটির ধরন নির্দিষ্ট করতে পারেন td:nth-of-type(2)
(উদাহরণস্বরূপ)
var secondChild = document.querySelector('.parent > td:nth-of-type(2)');
console.log(secondChild); // <td>element two</td>
.find()
পদ্ধতি ব্যবহার করুন
$(t).find("td:eq(1)");
td:eq(x) // x is index of child you want to retrieve. eq(1) means equal to 1.
//1 denote second element
নীচে দেওয়া হিসাবে আপনি jQuery এ দুটি পদ্ধতি ব্যবহার করতে পারেন-
JQuery ব্যবহার করে: নবম-বাচ্চার নির্বাচনকারী আপনি দ্বিতীয় লি উপাদান নির্বাচন করতে চাইলে আপনি কোনও উপাদানকে তার যুক্তি হিসাবে 2 হিসাবে রেখেছেন।
$( "ul li:nth-child(2)" ).click(function(){
//do something
});
JQuery ব্যবহার করে: eq () নির্বাচক
আপনি যদি সঠিক উপাদানটি পেতে চান তবে আপনাকে আইটেমের সূচক মানটি নির্দিষ্ট করতে হবে। একটি তালিকার উপাদান সূচক 0 দিয়ে শুরু হয়। লি এর 2 য় উপাদান নির্বাচন করতে আপনাকে আর্গুমেন্ট হিসাবে 2 টি ব্যবহার করতে হবে।
$( "ul li:eq(1)" ).click(function(){
//do something
});
উদাহরণ দেখুন: jQuery এ তালিকার দ্বিতীয় সন্তানের উপাদান পান
$(t).children('td').eq(1)
এবং এর মধ্যে পার্থক্য কী$(t).children()[1]