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