2011-08-26 39 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> 

現在我想遍歷所有M的同時也想知道如果我在a或b。 使用基本的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
$('.m').each(function(index) { 
    this.parentNode.getAttribute("class"); 
}); 
0

例如,檢查父是.a

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

而同爲B,它應該工作。

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

您可以檢查類的父元素內你的函數,以確定如果你在「A」或「b」

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

因此,父類var目錄應該有eithe值r'a'或'b'