2011-08-26 16 views
5

मैं इस मूल HTML संरचना है:jQuery: से अधिक नेस्टेड तत्वों का उपयोग कर पुनरावृति प्रत्येक

<div class=a> 
    <div class=m></div> 
    <div class=m></div> 
</div> 
<div class=b> 
    <div class=m></div> 
    <div class=m></div> 
</div> 

अब मैं सब मीटर से अधिक पुनरावृति करना चाहते हैं, लेकिन यह भी जानना चाहते हैं कि मैं एक या बी में हूँ चाहते हैं। मूल jquery वाक्यविन्यास का उपयोग करके मैं इसे खोजने में विफल रहता हूं।

$('.m').each(function(index) { 
    // how do i know if this m is part of a or b ? 
}); 

उत्तर

8

$(this).parent().hasClass("a") या $(this).parent().hasClass("b")

0

उदाहरण के लिए, माता-पिता की जाँच .a

if($(this).parent().is('.a')) 
1
if($(this).parent().hasClass('a')) 

और ख के लिए एक ही है, यह काम करना चाहिए है।

0

आप .closest विधि इस्तेमाल कर सकते हैं:

var $this = $(this); 
if ($this.closest("a").length === 1) { 
    alert("I'm in an a div"); 
} 
else { 
    alert("I'm in a b div"); 
} 
1

आप परवाह करते हैं, तो मैं चयनकर्ताओं को इस तरह अलग चाहते हैं:

$('.a .m').each(function(index) { 
    // now I'm on .a items 
}); 

$('.b .m').each(function(index) { 
    // now I'm on .b items 
}); 
0

आप अंदर माता पिता तत्व के वर्ग जाँच कर सकते हैं यदि आप 'एक' या 'बी' में हैं अपने कार्य की पहचान करने के

$('.m').each(function() { 
    var parentClass = $(this).parent().attr('class'); 
}); 

तो, parentClass वर eithe की एक मान होना चाहिए आर 'ए' या 'बी'

संबंधित मुद्दे