我需要一个函数来获取一个div内最高元素的高度。
我有一个包含许多其他元素(动态生成)的元素,当我使用$(elem).height() 获取容器元素的高度时,我得到的高度比其中一些内容要小。 其中一些元素是大于该元素所声明尺寸的图像。
我需要知道最高的元素,以便可以获取它的高度。
我需要一个函数来获取一个div内最高元素的高度。
我有一个包含许多其他元素(动态生成)的元素,当我使用$(elem).height() 获取容器元素的高度时,我得到的高度比其中一些内容要小。 其中一些元素是大于该元素所声明尺寸的图像。
我需要知道最高的元素,以便可以获取它的高度。
我发现这段代码更加直观和简短,可以在 http://css-tricks.com/snippets/jquery/equalize-heights-of-divs 找到。
var maxHeight = 0;
$(yourelemselector).each(function(){
var thisH = $(this).height();
if (thisH > maxHeight) { maxHeight = thisH; }
});
$(yourelemselector).height(maxHeight);
你可以始终执行以下操作:
var t=0; // the height of the highest element (after the function runs)
var t_elem; // the highest element (after the function runs)
$("*",elem).each(function () {
$this = $(this);
if ( $this.outerHeight() > t ) {
t_elem=this;
t=$this.outerHeight();
}
});
编辑以使其再次正常工作。
<div id="someParent">
<p>test</p>
<img src="test1.png" alt="test1" style="float: left" />
<img src="test2.png" alt="test2" style="float: left" />
<div style="clear: both;"></div>
</div>
或者应用清除浮动的CSS解决方案,实现类似的效果但不需要额外的标记或清除div。
包含元素将会获得与最高子元素相同的高度,您可以通过以下方式获取它:
$("#someParent").height();
$("#someParent").height()
如何给出三个子元素中两个的高度总和?在这个例子中,由于清除元素,它总是会给出具有最大高度的子元素的高度。那么子元素的宽度与此有什么关系呢?在浏览器中尝试一下。这个答案是6年前给出的,自那时以来发生了很多事情。如果您可以放弃对<IE9的支持,flexbox是一个更容易的选择。 - oldwizard在我的情况下,我需要与响应式设计一起使用它,所以我使其能够随着窗口大小的调整而工作。
function fixHeight(elem){
var maxHeight = 0;
$(elem).css('height','auto');
$(elem).each(function(){
if ($(this).height() > maxHeight) { maxHeight = $(this).height(); }
});
$(elem).height(maxHeight);
}
$(window).resize(function () {
fixHeight('.myelement');
});
$(document).ready(function(e) {
fixHeight('.myelement');
});
elem
未定义,因为它是您要测试的元素。 您应该放入实际保存要测试的元素的变量的名称,而不是 elem。 至于outerHeight()
,很可能自我回答以来出现了一些更改。 我将编辑答案使其正常工作。 - Thomast=$this.outerHeight();
后面加上一些注释,这样新手也能理解t
是最终值,可以将其与想要的值一起使用(如something.height(t+'px')
或something.animate( etc );
)。 - RaphaelDDL$("*", document.getElementById("headline"))
。 - Thomas