2012-09-26 51 views
0

我有一個div,我需要得到的高度。它在一個div裏面,裏面有幾個div。他們都在一個類似的股利結構。我做了一個js小提琴來說明我的問題以及迄今爲止我所擁有的。 http://jsfiddle.net/K3dx5/獲得另一個div內的div的高度

所以,基本上我需要得到單擊鏈接(400px)時,第二個鏈接(200px)上的第一個div的高度。

<div class="wrapper"> 
    <div class="one"> <!--I need to get the height of this div --> 
    <div class="NotThisone"> 
     <div class="No"> 
    <a class="anchor">ONE</a> 
     </div> 
    </div> 
</div> 
<div class="two"> <!--I need to get the height of this div --> 
    <div class="NotThistwo"> 
     <div class="No"> 
    <a class="anchor">TWO</a> 
     </div> 
    </div>  
</div> 

謝謝

回答

0

對於第一個,使用

var x = $(this).closest('.one').height(); 

對於第二個,使用

var x = $(this).closest('.two').height(); 
1

我建議使用closest()方法,有選擇:

$('.anchor').click(function() { 
    var height = $(this).closest('.wrapper > div[class]').height(); 
    console.log(height); 
});​ 

Updated JS Fiddle demo

參考文獻:

  • closest()
0

您的選擇是錯誤的。

var x = $(this).parent().parent().parent().css('height'); 

問題的div是從錨的三個級別,所以你需要使用三個父()方法。

或者您可以使用不同的選擇器。

0

小提琴中的問題是你選擇了imediate父母,雖然同時你想要的div是2個更高的水平。切換到這個選項可以完成這項工作。

var x = $(this).parent().parent().parent().css('height'); 

這看起來有點凌亂和不可靠的(如果你改變你的HTML添加周圍的錨標記更多的div時,JavaScript將選擇錯格設置一次),所以如果你添加一個普通類的div你想要身高,然後可以選擇特定的父母。因此,可以說,我增加了一個叫做「parentNeeded」的申報單「一」和「二」之類的,那麼你可以使用下面的語句

var x = $(this).parents(".parentNeeded").css('height'); 

您可以在此看到小提琴這 http://jsfiddle.net/K3dx5/5/

相關問題