获取div标签高度

5
我有一个div标签,在这个div中,我使用PHP / MYSQL从数据库中获取结果。我想要警报显示div标签的高度。问题是,有时候警报会返回不正确的div高度(小于实际结果)。有时候结果是正确的。
我认为这是因为JavaScript在PHP完成工作之前就返回了结果,因此警报得到的div高度比实际高度少。有人知道如何解决这个问题吗?(顺便说一下,在Chrome和Safari中,不正确的警报结果只有在Opera和Firefox中才是真实的。)
这是PHP代码:
$res = mysqli_query("SELECT some_column FROM table");
echo '<div id="my_div">';
while ($row = mysqli_fetch_row($res)) {
    echo '<p>'.row[0].'</p>';
}
echo "</div>";

以及JS代码:

$(document).ready ( function () {

   alert( $("#my_div").height() );

});

Chrome和Safari有多大差距? - Mark Pieszak - Trilon.io
你如何确定正确的高度?你怎么知道它是错误的? - Paul Dessert
1
PHP 会始终在 JS 之前运行(除非您通过 ajax 逐个加载它),因此它与此无关。 - jeremyharris
你可能需要outerHeight。这取决于你的需求。 - René
@mcpDESIGNS,您的问题是关于版本的,对吗?这个浏览器版本是最新的。 - Oto Shavadze
@Paul,我知道是因为有时结果非常多,例如大约3000像素是div标记的高度,而alert返回值是100。 - Oto Shavadze
2个回答

3

页面加载后计算高度。

window.onload = function (){
    alert( $("#my_div").height() );
}

1
.ready 在 DOM 准备就绪时运行,但这并不意味着它已经“稳定”。例如,图形可能仍需要加载。onload 在页面完成后运行。 - Jeremy J Starcher
1
非常感谢,当我将"$(document).ready"更改为"window.onload"时,问题得到了解决。 - Oto Shavadze

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接