Jquery函数找出<li> </li>的最大高度

时间:2011-07-21 10:04:42

标签: javascript jquery

我想找出<li>li最大高度的给定<li>? 我怎么写这样的功能?

如果有不同大小,内容和高度的n <li>个元素。我想弄清楚最大{{1}}元素的最大高度。

7 个答案:

答案 0 :(得分:29)

试试这个:

var max = -1;
$("li").each(function() {
    var h = $(this).height(); 
    max = h > max ? h : max;
});
alert(max);

答案 1 :(得分:20)

如果你想要一个班轮

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

答案 2 :(得分:5)

var liMaxHeight = -1;
var node;
$("li").each(function(index) {
    if ($(this).outerHeight() > liMaxHeight) {
        liMaxHeight = $(this).outerHeight();
        node = index;
    }
});
alert("li with index " + node + " has height " + liMaxHeight);

演示:http://jsfiddle.net/QUycm/

.outerHeight()包括填充和边框。如果不想包含填充和边框使用height()

答案 3 :(得分:0)

您将需要获取所有<li>元素,并进行手动循环以将它们相互比较。

答案 4 :(得分:0)

var max = -1 , current = null ;
var li = null ;

$("li").each(  function(i,node) {
    if(  ( current = $(this).height( ) ) > max ) max = current , li = node ;
}  ) ;

这将一举给你节点及其高度

答案 5 :(得分:0)

这是一个解决方案。

我们将遍历元素并找到具有最高高度的元素。

我们可以使用jquery来轻松完成这项工作。

  • 我们将创建一个空数组。
  • 遍历我们的元素并将所有高度存储在此数组中
  • 然后找到该数组中的最大高度
  • 我们将再次循环并将所有元素设置为最大高度。

     var heights = [];
            $('.your-class-name').each(function () {
                heights.push($(this).height());
            });
            var maxHeight = Math.max.apply(null, heights);
            $('.your-class-name').each(function () {
                $(this).height(maxHeight);
            });
    

KABOOM。

答案 6 :(得分:0)

$.fn.equalHeightPlugin = function () {
                        var self = this;
                        return {
                            getMaxHeight: function () {
                                let max = 0;
                                self.each(function () {
                                    if ($(this).height() > max) max = $(this).height();    
                                })
                                return max;
                            },
                            setMaxHeight: function (botOffset) {
                                let _offSet_ = 0;
                                _offSet_ = (typeof arguments[0] === "undefined") ? 0 : botOffset;                                  
                                self.height(this.getMaxHeight() + _offSet_);
                            }
                        }
                    }

您可以使用上述插件使所有选择的选择器具有相同的高度。

如果要为所有选择器设置最大高度,请调用插件:

var selector = $(".your-selector").equalHeightPlugin();
selector.setMaxHeight(offset);//you can have some pixels to adjust your height

如果要获得最大高度,只需执行以下操作:

selector.getMaxHeight();