【问题标题】:Calculate height of 3 elements and find the biggest计算 3 个元素的高度并找到最大的
【发布时间】:2013-03-09 15:52:46
【问题描述】:

美好的一天

我想计算 3 个元素的外高并返回最大的一个,因为它们的大小可以在任何给定时间变化...

这是我所拥有的:

var a = $('#latestInner').outerHeight();
var b = $('#make').outerHeight();
var c = $('#models').outerHeight();

if (a > b, c) {
    a = x;
}
else if (b > a, c) {
    b = x;
}
else if (c > a, b) {
    c = x;
}

我将如何进行?我知道我可能可以使用数组,但不知道如何..

【问题讨论】:

  • (a > b, c) 中的表达式使用 JavaScript 逗号运算符,它返回最右侧表达式的结果,在这种情况下 c 所以(a > b, c)(a > c) 相同。
  • 我明白了,谢谢。只是想努力
  • 这与此处提出的有关equalizing heights of columns 的其他问题类似,尽管此处的代码更紧凑:P

标签: jquery


【解决方案1】:

使用Math.max:

返回零个或多个数字中的最大值。

Math.max([value1[,value2[, ...]]]) 

使用 jquery 你可以做到:

var max = Math.max.apply(null, $.map($('#latestInner, #make, #models'), function(n){ 
    return $(n).outerHeight(); 
}));

【讨论】:

  • 谢谢,但是你如何实际返回最大值作为变量 z?
  • 感谢您的回答 CD...,感谢
【解决方案2】:

您可以使用每种方法计算最大值:

var max = 0;
$('#latestInner, #make, #models').each(function() {
    max = Math.max(max, $(this).outerHeight());
});

http://jsfiddle.net/uwsJH/

如果您需要将 div 的高度更新为相同,您可以立即进行设置:

var max = 0;
$('#latestInner, #make, #models').each(function() {
    max = Math.max(max, $(this).outerHeight());
})
.height(max);

http://jsfiddle.net/uwsJH/1/

【讨论】:

  • 好吧,我不认为只有 3 个 div 会太重。无论如何,OP 会为每个 div 计算 outerHeight。我刚刚添加了each 循环。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 2011-12-06
  • 1970-01-01
  • 2021-10-24
  • 2021-06-04
相关资源
最近更新 更多