在另一个div中得到div的高度

时间:2012-09-26 15:23:34

标签: jquery

我有一个div,我需要得到它的高度。它在div内部,里面有几个div。它们都在一个类似的div结构中。我做了一个js小提琴来说明我的问题以及到目前为止我所拥有的。 http://jsfiddle.net/K3dx5/

所以基本上我需要在单击链接(400px)时获得第一个div的高度,同样在第二个链接(200px)上。

<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>
     

谢谢

4 个答案:

答案 0 :(得分:1)

我建议使用closest()方法和选择器:

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

Updated JS Fiddle demo

参考文献:

  • closest()

答案 1 :(得分:0)

首先,使用

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

对于第二个,请使用

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

答案 2 :(得分:0)

你的选择器错了。

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

有问题的div距离锚点有三个级别,所以你需要使用三个parent()方法。

或者您可以使用其他选择器。

答案 3 :(得分:0)

小提琴中的问题是你选择了中级父母,虽然同时你想要的div高出2级。将选择切换为此可以完成工作。

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

这看起来有点混乱和不可靠(如果你改变你的html以在锚标记周围添加更多div,javascript将再次选择错误的div)所以如果你将一个公共类添加到你希望高度为div的div然后,您可以选择特定的父级。所以我说我将div“one”和“two”添加到名为“parentNeeded”的类中,然后可以使用以下语句

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

你可以在这个小提琴中看到这一点 http://jsfiddle.net/K3dx5/5/