2011-06-28 7 views
1

私はこのコードを持っている計算します。しかし、私はそれぞれのボックスを別々に計算したいと思う。これどうやってするの?あなたの現在のコードでjQueryのdivの高さは、別途

マイHTML

<div class="height"> 
    <div class="overlay height"></div> 
    Content 
</div> 

<div class="height"> 
    <div class="overlay height"></div> 
    Content 
</div> 

答えて

1

私は自分自身をそれを把握しており、これが解決策です:

$('div.height').each(function() { 
    hParent = $(this).height(); 
    hChild = $(this).find('div.overlay').height(); 
    maxHeight = Math.max(hParent, hChild);  
    $(this).height(maxHeight); 
    $(this).find('div.overlay').css("height",(maxHeight-72)+"px"); 
}); 
+0

あなたがその解決策に満足している場合は、あなたの答えを「受け入れ」(答えの左側のチェック)としてマークする必要があります。 – Spycho

1
$('div.height').each(function() { 
    maxHeight = Math.max(maxHeight, $(this).height());  
    $(this).height(maxHeight); 
}) 
+0

この場合、$(「div.height」)は偶然の高さに増加しているのdivの配列を返すならば、何も上の変更されますmaxHeightのページは常に現在のDOM要素の高さになります。これが彼が求めているものであるかどうかは分かりませんが、最初のループが終了した後にdiv.height要素をすべて反復し、高さをmaxHeightに設定します。 – MoarCodePlz

+0

@MoarCodePlz - true。しかし、それはOPがしたものです.... – Neal

+0

こんにちはニール、これは今では計算されていません... – Maanstraat

0

あなたはのmaxHeightの現在の値の代わりのmaxHeightの最終値にすべてを設定しています。私はあなたが正しく行うつもりことを理解していれば、そのようなとしてそれを分離してみてください:

var maxHeight = 0; 

$('div.height').each(function() { maxHeight = Math.max(maxHeight, $(this).height()); }); 

$('div.height').height(maxHeight); 

これは、すべてのdivに最終のmaxHeightが適用されます。

+0

これは、OPがすでにやっていることです....あなたはちょうどそれをもっと長くしました.... – Neal

+0

ねえ、あなたは正しいです。私は、それぞれの機能の中に高さがあると思った。 – MoarCodePlz

関連する問題