jQuery获取以像素为单位的高度
jQuery get height in pixels
我在HTML页面中有以下元素:
<body>
<div style="height:100%; width:100%">
<div style="height:100px;"></div>
<div id="container" style="height:25%; width:50%">
</div>
现在,我想使用jQuery(或纯JavaScript)获得div container
的像素高度。我该怎么做?
$('#container').height() // returns `0`
在CSS中,除非父元素也定义了高度,否则高度作为百分比是不起作用的。除非父母已经定义了身高,否则父母的身高是不起作用的(如果是百分比的话),以此类推
在这种情况下,请尝试将其添加到您的CSS:中
html, body {
height: 100%;
}
更新:代码返回0
的另一个原因是DIV没有任何子级(甚至没有文本节点)。如果添加了子节点,它将返回该子节点的高度,但在向以百分比定义高度的元素的所有父节点添加显式高度之前,它仍然不会返回25%的值。
根据您提供的代码,"0"是正确答案。--正如下面的评论中所提到的:默认情况下,潜水是被阻挡的。它解析为"0"的原因是,在此实例中,它从中派生"%"s的容器为0。所以你本质上是在说:高度=0*.25;
您需要指定div及其父节点的大小,或者需要有子节点来自然增长div的大小。
然后$('#container').height()
将返回一个大于0 的值
您可以执行此Height_String= new String($('#container').css('height'))
输出是19px作为字符串
或
你可以做这个Height_Int = new Number (parseInt($(#container).css('height'), 10))
输出为19作为整数
$('#container').css('height');
高度返回为0,因为计算出的#container
高度为0
。将% height
分配给没有任何相对固定高度的div将被分配给0
。
请参阅DEMO返回0的原因。
如果块的可见高度不是零,那么可能在加载页面之前调用jQuery.height()
。将您的呼叫打包到$(document).ready(function() {});
:
$(document).ready(function() {
/* some actions */
var h = $('#container').height(); // Height that you need.
});
使用简单的JavaScript语法,它可以完美地工作,但它可以返回以百分比为单位的高度:
document.getElementById('container').style.height
- 如果宽度是百分比,如何设置以px为单位的图像高度
- 如何将datetime转换为以毫秒为单位的epoch时间javascript
- 每小时倒计时一次,但以30分钟为单位
- 以天为单位计算年龄-Javascript
- 是否可以使用javascript获取以em为单位的窗口宽度
- 获取以屏幕像素为单位的旋转SVG元素的边界
- GridStack项的高度和宽度(以像素为单位)
- 有没有一种方法可以检查javascript以毫秒为单位执行一个函数需要多长时间
- JQPlot's仪表-以针为单位显示值
- Moment.js unix时间戳,以分钟为单位显示以前的时间
- 从Javascript到C#获取正确的日期(以毫秒为单位)
- 远距离变换元素的宽度/高度(以像素为单位)
- 以非像素为单位获取HTML DOM元素的CSS高度,在我的例子中是英寸
- .height() 以百分比返回高度,如何以像素为单位获取它
- 以像素为单位获取整个页面的高度
- 图像高度与图像宽度成比例,但图像宽度以父项的百分比为单位
- jQuery获取以像素为单位的高度
- 数据:图像/jpeg;base64如何获得以像素为单位的宽度和高度
- 定义从indesign导出的jpeg的高度,单位为mm
- 如何从内联样式中获得以百分比而非像素为单位的高度