0

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

所以基本上我需要在点击链接时获取第一个 div 的高度(400px),也在第二个链接(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>

​</p>

谢谢

4

4 回答 4

1

我建议使用closest()带有选择器的方法:

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

更新了 JS Fiddle 演示

参考:

  • closest().
于 2012-09-26T15:27:09.557 回答
0

首先,使用

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

第二,使用

var x = $(this).closest('.two').height();
于 2012-09-26T15:26:53.663 回答
0

你的选择器是错误的。

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

有问题的 div 比锚点高三个级别,因此您需要使用三个 parent() 方法。

或者您可以使用不同的选择器。

于 2012-09-26T15:28:42.350 回答
0

小提琴中的问题是您正在选择直接父级,尽管同时您想要的 div 高 2 个级别。将该选择切换到此即可完成工作。

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

这看起来有点混乱和不可靠(如果您更改 html 以在锚标记周围添加更多 div,则 javascript 将再次选择错误的 div)因此,如果您向 div 添加一个您想要高度的通用类,那么您可以选择特定的父级。所以假设我将名为“parentNeeded”的类添加到 div“one”和“two”中,然后您可以使用以下语句

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

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

于 2012-09-26T15:31:33.470 回答