为啥jQuery为div的高度返回null?
Posted
技术标签:
【中文标题】为啥jQuery为div的高度返回null?【英文标题】:Why does jQuery return null for the height of the div?为什么jQuery为div的高度返回null? 【发布时间】:2011-04-10 11:55:44 【问题描述】:$(document).ready(function()
function getDocumentHeight()
// What's the page height?
var height = $('#mainbody').height();
alert(height);
...
getDocumentHeight();
jQuery 不断提醒null
我的#mainbody
div 的高度。我不明白为什么,至少应该是500px
左右。
【问题讨论】:
你确定 存在吗? 你没有id="#mainbody"
,有#
吗?
@Nick:心理调试+1。
@Tomalak +1 表示“心理调试”这一短语
@Marko - 短语表扬 +1
【参考方案1】:
如果内容是动态加载的,元素可能还没有高度。尝试将此代码移动到页面底部,直接在上方,看看是否可以解决。
更新: 尝试将您的代码放入
$(window).load(function()
var height = $('#mainbody').height();
alert(height);
);
在你之外
$(document).ready();
【讨论】:
我有这个问题,但是我的代码在 DOM 准备好后执行。奇怪。【参考方案2】:如果您使用模板作为标记,例如使用 angular 或 ember,请使用 script 标签并从模板调用脚本。
<script type="text/javascript" src="/js/script.js"></script>
【讨论】:
【参考方案3】:100 毫秒延迟对我来说效果很好。毫不拖延地不工作。
setTimeout(function()
var imgWidth = $('#id').width();
var imgHeight = $('#id').height();
console.log(imgWidth);
console.log(imgHeight);
, 100);
【讨论】:
以上是关于为啥jQuery为div的高度返回null?的主要内容,如果未能解决你的问题,请参考以下文章
JQuery 移动面板小部件 - 打开可折叠列表会导致一旦展开超出页面高度,就会跳转到页面 div 的底部。为啥?