2011-05-23 87 views
3
<span style="width:100%" id="learning_menu"><div id="aLM" style="width:100%;height:100%">test | test | test</div></span> 

上面的代码是我拥有的当前HTML。我将使用jQuery将内部“div”缩小和增大。我无法弄清楚如何获得span/div的高度。我不打算在CSS中设置具体的值,因为它可能因浏览器而异。正因为如此,我的JavaScript(style.height)总是返回0.获取div的高度

任何想法?

回答

0

$("#learning_menu").height()将返回跨度的高度

+0

我会授予你“答案”,因为你给了我一个完整的代码示例。非常感谢!它现在很好:) – FreeSnow 2011-05-23 18:25:20

+0

这个答案使用最没用的所有库,有这么多的Web开发人员使用它,这是不可能找到谁真正**知道JavaScript的人,可以解释它的内部,总是jQuery,我每天都越来越讨厌它。 – 2015-05-30 21:25:37

+0

@iharob当jQuery在一行代码中为你提供所有你需要的东西时,为什么会变得复杂?此外,OP希望在jQuery中提供解决方案。如果你想知道如何做到这一点在纯JavaScript你应该要求在一个单独的问题 – BnW 2015-06-01 15:33:41

3

使用jQuery:这将是.height()方法。

var span_height = $('#learning_menu').height(), 
    div_height = $('#aLM').height(); 

N.B.在内联元素(<span>)内部放置块级元素(本例中为<div>)是无效的HTML。

+0

感谢您的帖子!我会和BnW一起去,因为他向我提供了更多关于使用情况的细节。 – FreeSnow 2011-05-23 18:25:40

20

这是纯JS和不需要的jQuery:

document.getElementById("learning_menu").offsetHeight; 
+1

它也是[很漂亮的跨浏览器](http://www.quirksmode.org/dom/w3c_cssom.html#t34)+1 – 2011-05-23 18:28:01

+0

@MattBall,是的,是的,它不需要不必要的jQuery – Neal 2011-05-23 18:28:59

+0

起初我没有用,所以我来到这里。我正在使用jQuery,所以它不会使我用得太多;) – FreeSnow 2011-05-23 18:32:28

1

嗯。我不确定我是否正确地解决了你的问题,但是......从纯JavaScript可以使用元素的clientHeight(或offsetHeight)属性以像素为单位获取它的高度。从jquery只使用.height()方法(这实际上是一个clientHeight属性的浏览器不可知的包装)。