Javascript 获取动态创建的元素的高度

Javascript 获取动态创建的元素的高度,javascript,jquery,Javascript,Jquery,我动态创建了一个div,并尝试获取其高度。我没有给它指定固定的高度。但其内容被指定为固定高度。所以我试图得到它的渲染高度 $(function(){ $services = $(<div id="services"></div>); $img = $(<img src="abc.jpg" height="100px" width="100px">); $a = $("<a href="home.php">Go to hom

我动态创建了一个div,并尝试获取其高度。我没有给它指定固定的高度。但其内容被指定为固定高度。所以我试图得到它的渲染高度

$(function(){
    $services = $(<div id="services"></div>);
    $img  = $(<img src="abc.jpg" height="100px" width="100px">);
    $a = $("<a href="home.php">Go to home</a>");
    $services.append($img,$a);
});

$(function(){
    var height = $("#services").height();
});
$(函数(){
$services=$();
$img=$();
$a=$(“”);
$services.append($img,$a);
});
$(函数(){
变量高度=$(“#服务”).height();
});
我得到的高度值为0


因此,我无法渲染
div#services的高度

在测量之前,您需要将元素添加到DOM中:

$('body').append($services);
var height = $("#services").height(); // works now

如果在使其可见之前需要其高度,一个常见的技巧是将其添加到隐藏的DOM中,测量它,然后使其可见。

在测量之前需要将元素添加到DOM中:

$('body').append($services);
var height = $("#services").height(); // works now

如果在使其可见之前需要其高度,一个常见的技巧是将其添加到隐藏的DOM中,测量它,然后使其可见。

您应该首先向页面显示这些DOM元素

在您的情况下,$services不会显示在页面上,因此结果$(“#services”)将一无所获

尝试这样做:

$(function(){
    $services = $(<div id="services"></div>);
    $img  = $(<img src="abc.jpg" height="100px" width="100px">);
    $a = $("<a href="home.php">Go to home</a>");
    $services.append($img,$a);

    //here
    $("body").append($services);
});
$(函数(){
$services=$();
$img=$();
$a=$(“”);
$services.append($img,$a);
//这里
$(“正文”)。附加($服务);
});

它会起作用。

您应该首先向页面显示那些Dom元素

在您的情况下,$services不会显示在页面上,因此结果$(“#services”)将一无所获

尝试这样做:

$(function(){
    $services = $(<div id="services"></div>);
    $img  = $(<img src="abc.jpg" height="100px" width="100px">);
    $a = $("<a href="home.php">Go to home</a>");
    $services.append($img,$a);

    //here
    $("body").append($services);
});
$(函数(){
$services=$();
$img=$();
$a=$(“”);
$services.append($img,$a);
//这里
$(“正文”)。附加($服务);
});
它会起作用的