2012-03-15 110 views
0

我想在div中設置相同高度的類名「modelCode」,所以我做了一個小函數來做到這一點,但是當我運行這個函數時,它設置elemeny風格的高度爲0px。在此之前,我使用了.height()方法,它工作正常,但我想用css高度方法對此進行任何猜測。在此先感謝jquery css高度選擇器?

<head> 
    <script type="text/javascript"> 
    function equalHeight(group) { 
     var tallest = 0; 
     group.each(function() { 
      var thisHeight = $(this).css('height'); 
       if (thisHeight > tallest) { 
        tallest = thisHeight; 
       } 
     }); 
     group.css('height',tallest); 
    } 

    function setequalheight() { 
     equalHeight($(".modelCode")); 
    } 

    $(document).ready(function() { setequalheight() }); 
    </script> 
<style> 
    .modelCode { width:200px; float:left; border:solid 1px #F00} 
</style> 
</head> 
<body> 
    <div class="modelCode">i am new text </div> 
    <div class="modelCode">i am new text <br />i am new text <br />i am new text <br />i am new text <br /></div> 
+0

@DanielNWerner是什麼讓你覺得'.each()'運行異步? – m90 2012-03-15 11:09:52

+0

它沒有。刪除我的評論以減少不良信息。 – dwerner 2012-03-15 16:26:29

回答

2

,將工作現在

function equalHeight(group) { 
var tallest = 0; 
group.each(function() { 
    var thisHeight = $(this).css('height'); 
    thisHeight = parseInt(thisHeight.substr(0 , (thisHeight.length - 2))); 
    //alert(thisHeight) 
    if (thisHeight > tallest) { 
     tallest = thisHeight; 
    } 


}); 

group.css('height',tallest); 
} 

問題是的CSS( '高度')返回一個字符串值,所以你必須將其解析爲整數來比較哪個更大值

+0

感謝pal singh現在我明白了.height()和css高度函數 – Carlos 2012-03-15 06:28:46

+0

之間有什麼區別,如果它是正確的,我希望你不會介意它標記爲正確答案 – 2012-03-15 06:30:09

+0

是的,我把它標記爲正確答案。 – Carlos 2012-03-15 06:44:21

0

當您使用jQuery的css方法,你必須提供整個值。在這種情況下,你可以給它提供一些整數,當你想給它整數加「px」。這與在CSS中編寫「height:40」(如果整數爲40)相同。

嘗試改變

group.css('height',tallest) 

group.css('height',tallest+"px"); 
+0

它不會工作,因爲最高的值始終爲0 – 2012-03-15 06:14:04