使用jQuery是否有更短的方法来获得相同的块高度?

时间:2012-05-11 20:51:47

标签: jquery

哪条路最短?

var height=0;
$('.el').each(function(){
height<$(this).height()?height=$(this).height():height=height
}).height(height);

如果它存在,当然。

修改 很好,谢谢gyus!

var h=0;
$('.el').each(function(){
    h=Math.max(h,$(this).height());
}).height(h);

2 个答案:

答案 0 :(得分:2)

略微更短,但更清洁更快我想:

$(".el").height(Math.max.apply(null, $(".el").map(function () {
    return $(this).height();
}).get()));

答案 1 :(得分:0)

在您的方法上附加.height(height);只会在找到新的最大值后更新元素的高度 您希望循环返回元素,然后将它们更改为新找到的最大高度 另外,使用Math.max进行比较。

比你的字符少4个字符,它会更新所有元素。

var h=0;
$('.el').each(function(){h=Math.max(h,$(this).height());});
$('.el').each(function(){$(this).height(h);});