Javascript 如何找到包含html内容的变量的高度 函数appData(arg){ var tmp='

Javascript 如何找到包含html内容的变量的高度 函数appData(arg){ var tmp=',javascript,jquery,height,Javascript,Jquery,Height,jQuery在执行$(tmp)时,似乎对您选择的元素感到困惑,因此返回一个空高度 如果在初始化时将字符串明确定义为对象,则可以在将其连接到DOM后计算高度。请尝试以下操作: function appData (arg) { var tmp ='<div class="eventPopUp" z-index:6;">asdfasd <br> asdfasd <br> asdfasd <br> asdfasd<div style="cl

jQuery在执行
$(tmp)
时,似乎对您选择的元素感到困惑,因此返回一个空高度

如果在初始化时将字符串明确定义为对象,则可以在将其连接到DOM后计算高度。请尝试以下操作:

function appData (arg) {
    var tmp ='<div  class="eventPopUp" z-index:6;">asdfasd <br> asdfasd <br> asdfasd <br> asdfasd<div style="clear:"></div></div>'
    $(arg).html(tmp);
    var off= $(tmp).offset().left;
    var wid = $(tmp).width();
    //var hei = $(arg).children().height();
    var hei = $(tmp).outerHeight();


    console.log('width is ' + wid + ' height is ' + hei);
 }
函数appData(arg){
var$tmp=$('asdfasd
asdfasd
asdfasd
asdfasd') $(arg).append($tmp); var off=$tmp.offset().left; var wid=$tmp.width(); var hei=$tmp.outerHeight(); console.log('宽度为'+wid+'高度为'+hei)); }

得到0的原因很可能是因为在元素包含任何内容之前读取了高度。换句话说,请尝试使用

如果这不起作用,请尝试使用setTimeout

$( document ).ready(function() {
// call appData function here
});

你每隔一秒钟检查一次高度,直到高度与0不同。我不建议这样做,除非你开始在墙上留下前额标记。

我不确定是否有任何方法/方法可以找到尚未创建的元素的高度/宽度。arg是什么,正在更新哪个HTML?你正在使用您的tmp作为选择器。因此jQuery正在寻找选择器
'
$( document ).ready(function() {
// call appData function here
});
x = setTimeout(function() {
// call appData or read height and if height of my selection is != 0 then
// {
// clearTimeout(x);
// myHeight = height of my selection
// call function that does something with it and send it as a param
// }
}, 1000);