jQuery + CSS。 如何计算innerHTML的高度和宽度?

我有一个使用jQuery的Web项目的典型父子div层次结构。 子css没有高度,这允许它根据innerHTML的高度进行扩展和收缩。 我以编程方式将HTML标记填充到子项的innerHTML属性中。

我希望设置父级的高度以匹配子级标记后的子级高度。 我该怎么做呢? 我试过了:

childDiv.innerHTML = content; childDivObject = $(childDiv); parentDivObject = $(parentDiv); parentDivObject.css({ "height" : childDivObject.height() + "px" }); 

但这没效果。 我错过了什么?

更新0

更多背景。 此代码用于通过用户点击显示/消失的弹出窗口。 这是css。 这里发生的事情不多:

 // parent .parent { position: absolute; top: 0; left: 0; width: 350px; display: none; } // child .child { position: absolute; top: 5px; left: 5px; right: 25px; } 

父母可以显示的事实:没有问题的一部分吗? 我正在使用jQuery show()/ hide()方法,如果这是相关的。

改变这个:

 "height" : childDivObject.height() + "px" 

对此:

 "height" : childDiv.height() + "px" 

看起来你正试图获得内容的高度而不是div本身。

得到它了。 因为jQuery切换css显示属性来隐藏/显示弹出窗口。

答案是这样做:

  parentDivObject.css({ "left": left + "px", "top" : top + "px" }).show(); parentDivObject.css({ "height": childDivObject.height() + "px" }); 

我在jQuery show()方法之后设置了高度该方法切换显示然后高度变为有效。 它不漂亮,但它的工作原理。 干杯。

通常你会使用回调,但是html()没有回调,但还有其他的东西,叫做promise。

jquery html()回调函数 http://digitizor.com/2013/08/03/jquery-html-callback-function-using-promise/

  $('#divId').html(someText).promise().done(function(){ //your callback logic / code here });