2012-09-26 29 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/