javascript কোন পূর্বপুরুষ jQuery ব্যবহার করে একটি বর্গ আছে কিনা তা পরীক্ষা করুন




html jquery-selectors (3)

if ($elem.parents('.left').length) {

}

কোনও পিতা-মাতা, দাদা-পিতামাতা, দাদা-পিতামাতার একটি বর্গ আছে কিনা তা যাচাই করতে jQuery এ কোন উপায় আছে।

আমার একটি মার্কআপ স্ট্রাকচার রয়েছে যা আমাকে কোডে এই ধরণের জিনিসটি রেখে দিয়েছে:

$(elem).parent().parent().parent().parent().hasClass('left')

যাইহোক, কোড পঠনযোগ্যতার জন্য আমি এই ধরণের জিনিস এড়াতে চাই। "কোন পিতা / পিতামহ / মহৎ-পিতামাতার এই শ্রেণী আছে" বলতে কোন উপায় আছে?

আমি jQuery 1.7.2 ব্যবহার করছি।


আপনি নির্দিষ্ট .class নির্বাচক সঙ্গে parents পদ্ধতি ব্যবহার করতে পারেন এবং তাদের মধ্যে কেউ এটি মেলে কিনা তা পরীক্ষা করে দেখুন:

if ($elem.parents('.left').length != 0) {
    //someone has this class
}

উপাদান পূর্বপুরুষদের জন্য ফিল্টার করার অনেক উপায় আছে।

if ($elem.closest('.parentClass').length /* > 0*/) {/*...*/}
if ($elem.parents('.parentClass').length /* > 0*/) {/*...*/}
if ($elem.parents().hasClass('parentClass')) {/*...*/}
if ($('.parentClass').has($elem).length /* > 0*/) {/*...*/}
if ($elem.is('.parentClass *')) {/*...*/} 

সাবধান , closest() পদ্ধতি নির্বাচক জন্য চেক করার সময় উপাদান নিজেই অন্তর্ভুক্ত।

বিকল্পভাবে, যদি আপনার $elem #myElem মিলে একটি অনন্য নির্বাচক থাকে , উদাহরণস্বরূপ #myElem , আপনি ব্যবহার করতে পারেন:

if ($('.parentClass:has(#myElem)').length /* > 0*/) {/*...*/}
if(document.querySelector('.parentClass #myElem')) {/*...*/}

স্টাইলিংয়ের উদ্দেশ্যে শুধুমাত্র পূর্বপুরুষের ক্লাসের উপর নির্ভর করে আপনি যদি কোনও উপাদানটি মিলতে চান তবে কেবল একটি CSS রুল ব্যবহার করুন:

.parentClass #myElem { /* CSS property set */ }




jquery-1.7