Javascript 如何获取加载页面后更改的div的当前高度? 我想要什么

Javascript 如何获取加载页面后更改的div的当前高度? 我想要什么,javascript,jquery,height,Javascript,Jquery,Height,根据.results div的当前内容确定其准确的高度 背景 当我浏览我的网站时,results div会根据搜索等动态内容进行更新。我可以得到results div的高度,但只能得到初始值 用于更新div的代码 我试过的 请注意,我打印了这些值,以便在firebug中进行检查 var $results = $('.results'); /* Prints out: */ console.log($results.height()); /* 18

根据.results div的当前内容确定其准确的高度

背景 当我浏览我的网站时,results div会根据搜索等动态内容进行更新。我可以得到results div的高度,但只能得到初始值

用于更新div的代码 我试过的 请注意,我打印了这些值,以便在firebug中进行检查

var $results = $('.results');          /* Prints out: */
console.log($results.height());        /* 18          */
console.log($results[0].scrollHeight); /* 18          */
console.log($results[0].clientHeight); /* 18          */
console.log($results.css('height');    /* 18px        */
console.log($results.attr('height');   /* undefined   */
高度远远超过页面底部,因此18px绝对不准确。我如何获得真正的价值

可能的解决方案? ryanulit帮我弄明白了.height()应该在我所做的事情中正常工作。因此,我认为正确处理事件存在一些问题。应用程序中有许多地方返回false而不是调用event.preventDefault()。问题是,当您返回false时,除了event.preventDefault()之外,它还调用event.stopPropagation()

更新 我没有发现任何返回值为false的地方会影响高度。但是,我发现直接在html中使用style=“height:0px;”设置高度可以正确地更新高度。我不知道还可以尝试什么,所以我现在很困惑……

看看jquery的功能

这里有一个JSFIDLE来说明它实际上正在改变:

更新

高度:0px让我思考,所以我在小提琴中测试并更新了:


如果在css中设置特定的高度,.height()属性似乎总是返回该值。检查小提琴。如果您想给div一个默认高度,然后允许它扩展,您可以设置
最小高度:18px

正如前面两张海报所说,.height()应该可以工作,但是如果它不工作,我相信调用

.height(currentElement.height).height() 
将返回一个刷新的高度(尽管非常粗糙,可能不受欢迎)


编辑:currentElement是具有动态高度的元素

,这是我在“我尝试了什么”部分中测试的第一件事。能否显示更新.results div然后再次尝试获取高度的实际代码?在我的提琴示例中,我就是这么做的,它似乎很好地获得了新的高度。另外,为了防止出现问题,您正在使用什么浏览器?我用更新div的代码更新了我的帖子。另外,IE7+和Firefox3.6+是我测试过的浏览器。我更新了JSFIDLE。转到小提琴,看看高度值是否为您实际更改。我的代码与你的代码完全相同,正在开发IE和FF。另外,作为记录,您不需要在那里调用.empty()。在本例中,.html()将同时为您清除并添加新的html。您是对的。jsfiddle运行正常。我需要看看我的应用程序是否有什么奇怪的地方……我试着打印$results.height($results.height).height(),结果仍然是18。有什么我遗漏的吗?
.height(currentElement.height).height()