我有一个div,其中包含用户可以通过拖放进行重新排列的元素数量。另外,他可以从工具栏添加新的元素。我想增加外部div的高度来包装所有这些元素。现在它们重叠在页脚上。我所面临的挑战是 - 1.如何找到放置在其他下面的元素。所有元素都有相对位置。 2.高度变化需要在元素的下拉处理。如何计算div中的元素在jquery中的高度?
我非常迫切需要解决方案。
谢谢
我有一个div,其中包含用户可以通过拖放进行重新排列的元素数量。另外,他可以从工具栏添加新的元素。我想增加外部div的高度来包装所有这些元素。现在它们重叠在页脚上。我所面临的挑战是 - 1.如何找到放置在其他下面的元素。所有元素都有相对位置。 2.高度变化需要在元素的下拉处理。如何计算div中的元素在jquery中的高度?
我非常迫切需要解决方案。
谢谢
也许是这样的?
var height = 0;
$("div > *").each(function() {
height += $(this).height();
})
我更喜欢'var totalHeight = 0; ();();();(“#container”)。children(); each(function(){ totalHeight + = $(this).outerHeight(); }); alert(“Total Height:”+ totalHeight +“px”);'1)避免命名符合属性名称的变量2)outerHeight考虑填充,边距和边框 – 2012-01-03 18:19:38
在这种情况下,你可以使用Array.prototype.reduce
方法来简化的解决方案转化为一个单行:
var innerHeight = $("#parentDIV").children().reduce(function(a, b){
return $(a).height() + $(b).height();
});
的降低方法一般是有用的,它是由最现代浏览器都支持。为了确保兼容性,您可以轻松地添加方法:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
最好的办法是这样的:
为DIV
var divToShow = " < div id='addNEWpop' > ";
第一创建元素然后把它所有的元素,那么其附加到你的身体
$(document.body).append(divToShow);
现在让我们得到DIV的高度
heightS=$('[id^="addNEWpop"]').height();
告诉你它是使CSS之前
$("#addNEWpop").css({width:"400px",height:heightS+"px",display: "none", })
最后
$('[id^="addNEWpop"]').show("slow");
什么具有u迄今所做的?..让我们看到html和代码编写.. – Kai 2010-07-01 10:43:24
浏览器应对此进行处理...为什么不是?你必须有一些明确的样式,外部div不*已经*伸展到它的内容,你可以张贴吗? – 2010-07-01 11:08:30