Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取jQuery中新插入项的高度_Javascript_Jquery - Fatal编程技术网

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

Javascript 获取jQuery中新插入项的高度,javascript,jquery,Javascript,Jquery,我有以下代码将一些HTML插入DOM。(\u articletTitleDivTemplate是一个带有HTML的字符串,\u previewPane是我要插入项目位置的元素。) 在调试器中运行时,我可以看到div是我所期望的。插入的元素将正确显示在页面上。除了警报始终显示0外,所有功能似乎都正常工作 在网上搜索时,如果我调用了before(),这应该有一个高度。如何获取新插入项目的高度 注意:此代码运行时,如果有任何影响,则父元素将隐藏。当元素隐藏时,您无法获取高度。显示它,获取高度,然后隐藏

我有以下代码将一些HTML插入DOM。(
\u articletTitleDivTemplate
是一个带有HTML的字符串,
\u previewPane
是我要插入项目位置的元素。)

在调试器中运行时,我可以看到
div
是我所期望的。插入的元素将正确显示在页面上。除了警报始终显示0外,所有功能似乎都正常工作

在网上搜索时,如果我调用了
before()
,这应该有一个高度。如何获取新插入项目的高度


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

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

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

你的问题在这里提出: ……这里: ……这里:

显示元素,抓取高度,然后再次隐藏可能会导致屏幕上出现闪烁,因此这并不理想


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

是的,我相信隐藏元素(显示:无)有0维。当您询问隐藏元素的大小时,我认为jQuery在内部做到了这一点。@r3mus他的第二句回答了这个问题。\u previewPane不是父元素,但我理解您的意思。
var div = $(_articleTitleDivTemplate);
_previewPane.before(div);
_previewPane.show();
alert(div.height());
_previewPane.hide();