2

私はこのような構造を持っています:

<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>

aに設定された各divクラスでクラスがbに設定された最高のdivを見つけて、アラートで表示したいですか?

4

2 に答える 2

7
$('.a').each(function() {
    var maxHeight = 0;
    $('.b', this).each(function() {
        if($(this).height() > maxHeight) {
         maxHeight = $(this).height();  
        }
    });
    alert(maxHeight);
});
于 2012-07-19T08:00:30.737 に答える
6

を使用.map()して、一致する各要素の高さを含む jQuery オブジェクト (この場合は実質的に数値の配列) を生成できます。次に、applyその配列をMath.max使用して、その中の最大値を決定できます。

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

これが実際のです。


更新(これは、質問で指定したとおりに動作するはずです)

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

別の実用的な例を次に示します。

于 2012-07-19T07:54:16.873 に答える