如果另一个高度更大(jquery和变量),请设置此高度

时间:2013-06-26 23:17:26

标签: jquery css if-statement height var

我做了一些if个句子,以便等于所有列的高度(#col1#col2#col3)。但是,出于某种原因,我可以使用.css()函数获取值,但是当我尝试设置我从其他var获得的值时,无法使其工作。

这是我的jquery代码:

$(document).ready( function(){
    var col1_height = $('#col1').css('height');
    var col2_height = $('#col2').css('height');
    var col3_height = $('#col3').css('height');

    if (col1_height < col2_height){
        $('#col1').css('height', col2_height);
    }

    if (col1_height < col3_height){
        $('#col1').css('height', col3_height);  
    }

    if (col2_height < col1_height){
        $('#col2').css('height', col1_height);
    }

    if (col2_height < col3_height){
        $('#col2').css('height', col3_height);
    }

    if (col3_height < col1_height){
        $('#col3').css('height', col1_height);
    }

    if (col3_height < col2_height){
        $('#col3').css('height', col2_height);
    }
});

这是我的jsfiddle:http://jsfiddle.net/Arkl1te/aNcYC/

2 个答案:

答案 0 :(得分:2)

使用此:

var newHeight = 0;
$('#col1, #col2, #col3').find('.content').each(function(){
    var temp = $(this).height();
    newHeight = temp > newHeight ? temp : newHeight;
}).css('height', newHeight);

循环遍历每个列的.content,并将每个元素的高度与newHeight进行比较。如果当前高度大于newHeight,则newHeight将设置为此值。

一旦循环结束,所有.content元素都被赋予最大的高度。

这里有效:http://jsfiddle.net/aNcYC/2/

答案 1 :(得分:0)

我不检查它,但.css('height')返回带有px的字符串...使用.height()parseInt($(selector).css('height'))