我有以下代码将一些HTML插入DOM。 (_articleTitleDivTemplate
是包含HTML的字符串,_previewPane
是我要插入项目的位置的元素。)
var div = $(_articleTitleDivTemplate);
_previewPane.before(div);
alert(div.height());
在调试器中运行,我可以看到div
是我所期望的。插入的元素在页面上正确显示。一切似乎都运行正常,但警报始终显示为0。
在网上搜索,一旦我调用before()
,它似乎应该有一个高度。如何获得新插入项目的高度?
注意:在此代码运行时,如果有任何影响,则隐藏父元素。
答案 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认为该元素是可见的,但实际上它仍然是隐藏的。跳转后代码示例。