我有两个并列的沙发。它们都没有标准高度,但第一个在另一个提交表单后填充内容时就有了内容。我想把第二个的高度和第一个一样。
以下是html:
<div id='left'>
...........
</div>
<div id='right'>
...........
</div>
<script type="text/javascript">
$(document).ready ( function(){
var divHeight = document.getElementById('left').style.height;
document.getElementById('right').style.height = divHeight+'px';
});
</script>
我在控制台上没有任何错误,但是第二个div的高度没有改变。有什么帮助吗?
您正在寻找越轨
。未设置最左侧div的height
属性(因为这是实际的CSS属性,并且您没有静态设置高度),但offsetHeight
是由其内容定义的div的实际高度。
var offsetHeight = document.getElementById('left').offsetHeight;
document.getElementById('right').style.height = offsetHeight+'px';
下面是一个要演示的JSFIDLE。
注意还有clientHeight
。不同的是offsetHeight
还包括填充和边框。看看这个答案。
使用jQuery
$(document).ready ( function(){
var leftHeight = $('#left').height();
$('#right').height(leftHeight);
});
或者直接
$(document).ready ( function(){
$('#right').height( $('#left').height() );
});
我看到您正在使用jQuery。以下是jQuery版本,它相当于您使用的本机JavaScript代码。
$(document).ready ( function(){
var divHeight = $('#left').height();
$('#right').height(divHeight);
});
演示(JsFiddle)。
由于您使用left
和right
作为元素的Id,我假设它们是内联块
s。因此,您应该设置另一个元素的偏移高度,而不是实际高度:
$(document).ready ( function(){
var divHeight = $('#left')[0].offsetHeight;
$('#right').height(divHeight);
});
演示(JsFiddle)。