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 });