Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取div高度_Javascript_Html - Fatal编程技术网

Javascript 获取div高度

Javascript 获取div高度,javascript,html,Javascript,Html,Firebug告诉我my_div的计算样式: 宽度300px 高度453.167px 然而,当我执行console.log(mydiv.style.height)时,它给了我一个空字符串,即使console.log(mydiv)记录了正确的元素。我确信在调用此日志代码时页面已加载。如果有一个不使用jQuery的解决方案,我将不胜感激。根据所选浏览器的不同,其中一个可以: mydiv.offsetHeight mydiv.clientHeight 更新: 自从我给出最初的答案以来,许多浏览器不

Firebug告诉我my_div的计算样式:

宽度300px

高度453.167px


然而,当我执行
console.log(mydiv.style.height)
时,它给了我一个空字符串,即使
console.log(mydiv)
记录了正确的元素。我确信在调用此日志代码时页面已加载。如果有一个不使用jQuery的解决方案,我将不胜感激。

根据所选浏览器的不同,其中一个可以:

mydiv.offsetHeight
mydiv.clientHeight

更新:

自从我给出最初的答案以来,许多浏览器不一致的问题已经得到了解决。现在DOM元素的
clientHeight
属性是可靠的

var height=element.clientHeight

对于没有CSS或内联布局框的元素,Element.clientHeight只读属性为零,否则它是元素的内部高度(以像素为单位),包括填充,但不包括水平滚动条高度、边框或边距

clientHeight可以计算为CSS高度+CSS填充-水平滚动条的高度(如果存在)

注意:此属性将值舍入为整数。如果需要小数,请使用element.getBoundingClientRect()

资料来源:

原始答复:

如果使用jQuery JS库,您可以执行以下操作:

var computed_height = $('#my_div').height();
如果使用Prototype JS库,则类似于:

var computed_height = $('my_div').getHeight();

使用库通常是最简单、最跨浏览器的方法。使用vanilla js获取计算样式是不可靠的,因为不同浏览器的属性不同。

谢谢!他们都工作。你知道为什么mydiv.style.height不起作用吗?@RosePerrone
element.style.height
只返回内联样式,这意味着如果你没有在元素的标记中指定样式(即
),
style
属性将为任何属性返回空字符串。@rosePerrone
style.height
只是CSS样式属性的值。因为您没有设置高度,所以这是空的。为什么style属性不返回计算的样式,而不是只返回程序员指定的CSS规则的值?@RosePerrone:因为代码就是这样写的-您可能会在W3C规范中找到一些深暗的角落来说明这一点,但最好不要把你的时间浪费在这样的小事上。我不会投票否决你,因为它在技术上是有效的,但请注意并尊重这个问题:
我希望有一个不使用jQuery的解决方案。
但它没有说这是一个要求。;)如果你愿意,我可以在其他图书馆发布一些方法。关键是,vanilla js对于这样的东西来说是不合适的,因为在不同的浏览器中有不同的属性。调用1 method“.height()”比说如果这个浏览器那么它是这个属性,如果这个浏览器那么它是这个属性等更容易。哦,相信我,我也绝对会使用库,但是当帖子明确要求使用非库方法时,我发现最好假设它们有原因。可能重复