繁体   English   中英

如何使用jQuery制作等高的DIV

[英]How to make equal height DIVs with jQuery

我正在尝试制作一个jQuery函数,以循环遍历所有<div class="check-js"></div> ,比较高度以找出最高高度,并将所有高度设置为与最高高度相同,但这似乎不起作用。 这可能是什么问题?

$(document).ready(function() {
                $('.check-js').each(function() {
                    alert($(this).index);
                    var aux = 0;
                    var max = 0;
                    aux = $(this).style.height;
                    aux.replace(/\D/g,'');
                    alert(max);
                    if (Math.max(aux, max)==aux){
                        max = aux;
                    }
                });
            });

这还没有完成,我还没有添加更改高度的指令,因为我无法使其在<div>循环,所以不会弹出max的警报。

您需要使用共享变量max否则每次迭代都会重置 max的值...也要使用.height()获取元素的高度

$(document).ready(function () {
    //shared variable
    var max = 0,
        $els = $('.check-js');
    $els.each(function () {
        max = Math.max($(this).height(), max); //use height method from jQuery
    });

    $els.height(max)
});

演示: 小提琴

首先,因为要遍历它们,所以如果没有each范围之外的变量,就无法比较它们。 这是在每个循环/函数中使用jQuerys查找最高值的简单方法:

function findHighest(jQueryObjects){
    var highest = 0;
    jQueryObjects.each(function(){
        var localHeight = $(this).innerHeight();
        if(localHeight > highest){
            highest = localHeight;
        }
    });
    return highest;
}

现在您可以执行$('.check-js').css("height", findHighest($('.check-js'))); 将最高高度应用于每个高度(尽管最好先在变量中声明它: var height = findHighest($('.check-js')); $('.check-js').css("height", height); );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM