在jQuery中获取新插入项的高度

时间:2013-12-19 04:00:21

标签: javascript jquery

我有以下代码将一些HTML插入DOM。 (_articleTitleDivTemplate是包含HTML的字符串,_previewPane是我要插入项目的位置的元素。)

var div = $(_articleTitleDivTemplate);
_previewPane.before(div);
alert(div.height());

在调试器中运行,我可以看到div是我所期望的。插入的元素在页面上正确显示。一切似乎都运行正常,但警报始终显示为0。

在网上搜索,一旦我调用before(),它似乎应该有一个高度。如何获得新插入项目的高度?

注意:在此代码运行时,如果有任何影响,则隐藏父元素。

2 个答案:

答案 0 :(得分:3)

当隐藏元素时,您无法获得高度。显示它,获得高度然后隐藏它。

var div = $(_articleTitleDivTemplate);
_previewPane.before(div);
_previewPane.show();
alert(div.height());
_previewPane.hide();

答案 1 :(得分:2)

您的问题在此处提出: jQuery: Get height of hidden element in jQuery ...和这里: jQuery: height()/width() and "display:none" ...和这里: jQuery - Get Width of Element when Not Visible (Display: None)

显示元素,抓住高度,然后再次隐藏可能会导致屏幕闪烁,所以它并不理想。

最受欢迎的答案是添加一些CSS属性以使jQuery认为该元素是可见的,但实际上它仍然是隐藏的。跳转后代码示例。