0

当我尝试将高度设置为 div 以在 jquery 中自动并尝试再次计算其高度时,结果将为我提供 0。为什么会这样?

$('#test').css('height','auto')

$('#test').height(); // 0

我怎样才能计算它的高度呢?

编辑

这是我正在运行的 javascript 代码:

function visitFix() {
    $('.visit').find('.profileDetail').each(function () {
        console.log($(this).height()); //24
        $(this).css('height', 'auto');
       console.log($(this).height()); // 0
    });
}

这是 DOM 树的样子:

<td class="profileView">
    <div class="profileContent">Purpose: </div>
    <div class="profileDetail" style="height: auto;">Program Participant Volunteer Rejuvenation Participant General Visit </div>
</td>

输出是 24,然后是 0。

4

3 回答 3

1

尝试这个

http://jsfiddle.net/zS7kd/

您可以使用.height(), .innerHeight()outerHeight()根据您的需要。

http://api.jquery.com/height/

在此处输入图像描述

.height() -返回元素的高度,不包括填充、边框和边距。

.innerHeight() -返回元素的高度,包括填充但不包括边框和边距。

.outerHeight() -返回 div 的高度,包括边框但不包括边距。

.outerHeight(true) -返回 div 的高度,包括边距。

于 2013-08-02T06:31:01.487 回答
0

当我们进入

css

{height:auto}

html

<div id="test"></div>

jQuery

 $(document).ready(function(e) {
        alert($("#test").height());
    });

那么输出为0

<div id="test">dsdsdsd</div>

现在

 $(document).ready(function(e) {
        alert($("#test").height());
    });

然后输出是20

所以当我们设置 height :auto 然后它会自动计算高度

并且您想通过填充和边距获得高度,那么还有更多功能

参考:

.innerHeight() - 返回元素的高度,包括填充但不包括边框和边距。

.outerHeight() - 返回 div 的高度,包括边框但不包括边距。

于 2013-08-02T06:47:03.150 回答
0

我发现在一些我设置了高度并且需要调整大小的脚本中,由于新的传入内容,您首先应该首先删除任何设置的高度。然后根据需要拉出 outerHeight() 或 innerHeight()。

于 2013-08-02T07:15:47.463 回答