2012-07-19 41 views
1

的高度我有建設這樣的:jQuery的。每次和DIV

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

我想找到類警示最高的div設置設爲每個DIV類爲b,和展示?

+0

你想學高度div class =「a」?或b? – 2012-07-19 07:50:38

+0

http://api.jquery.com/each/,http://api.jquery.com/class-selector,http://api.jquery.com/height/ - Try。 – nbrooks 2012-07-19 07:54:02

回答

5
$('.a').each(function() { 
    var maxHeight = 0; 
    $('.b', this).each(function() { 
     if($(this).height() > maxHeight) { 
     maxHeight = $(this).height(); 
     } 
    }); 
    alert(maxHeight); 
}); 
+0

它工作得很好,但是如何爲clas a中的每個class b設置局部最大高度?警報顯示正確的值。 – plewas 2012-07-19 08:38:33

+1

只需添加'$('.b',this).height(maxHeight)'(其中'alert'目前是) - 工作小提琴:http://jsfiddle.net/RZzTv/ – billyonecan 2012-07-19 08:49:02

+0

感謝您的奉獻。有用。 – plewas 2012-07-19 09:30:48

5

您可以使用.map()生成一個包含每個匹配元素的高度的jQuery對象(在這種情況下,它實際上是一個數組數組)。然後,您可以apply該數組Math.max以確定它最大的價值:

var maxHeight = Math.max.apply(Math, ​$(".b").map(function() { 
    return $(this).height(); 
})); 

這裏有一個working example


更新(這個應該做出你在你的問題中指定)

$("div.a").each(function() { 
    alert(Math.max.apply(Math, ​$("div.b", this).map(function() { 
     return $(this).height(); 
    }))); 
}); 

這裏還有一個working example

+0

+1:清潔解決方案;很好的解釋。 – 2012-07-19 07:58:26

+0

由於問題中提到「在每個div類中設置爲」,該選擇器應該是$('。a')。find('。b')'。 – spinningarrow 2012-07-19 08:00:01

+0

@spinningarrow或只是'$('。a> .b')' – nbrooks 2012-07-19 08:00:50