Javascript 尝试获取实际宽度&;使用jQuery的元素的高度

Javascript 尝试获取实际宽度&;使用jQuery的元素的高度,javascript,jquery,actualwidth,actualheight,Javascript,Jquery,Actualwidth,Actualheight,我试图用jQuery获取元素的宽度和高度。现在我有了一个函数,它在元素周围包装一个span,并从临时span元素获取大小 HTML 获取“Hello world”的实际宽度和高度的唯一方法是删除其周围的div标记:。但这不是我想要的:) 有人吗?编辑答案 $(“#测试”)。单击(函数(){ 变量大小=元素大小(“#内容”); $('#result').html(size.width+'x'+size.height+'px'); }); 功能元素大小(元素ID){ var html_org=$

我试图用jQuery获取元素的宽度和高度。现在我有了一个函数,它在元素周围包装一个span,并从临时span元素获取大小

HTML

获取“Hello world”的实际宽度和高度的唯一方法是删除其周围的div标记:。但这不是我想要的:)

有人吗?

编辑答案

$(“#测试”)。单击(函数(){
变量大小=元素大小(“#内容”);
$('#result').html(size.width+'x'+size.height+'px');
});
功能元素大小(元素ID){
var html_org=$(elementId.html();
var$html\u calc=$(''+html\u org+'').css({
位置:'绝对',
顶部:-9999,
左:-9999
}).附于(“主体”);
变量ret={
宽度:$html\u计算宽度(),
高度:$html_计算高度(),
};
$html_calc.remove();
返回ret;
}

复制隐藏元素时,其大小为零。只需将其取消隐藏以进行计算:

function elementSize ( elementId ) {
    ...
    $( elementId ).html( html_calc ).show();    
    var ret = {
        ...
    };    
    $( elementId ).html( html_calc ).hide();    
    ...    
    return ret;
}

因为我想要元素中html的宽度/高度。使用您的解决方案,我得到的是元素本身的大小,而不是元素中的大小:请参阅更新的答案,但当然,这将返回与容器相同的大小,因为DIV将宽度和高度调整为其内容,除非某些CSS规则应用为填充/边框等。。。如果仍然没有按照你的预期工作,请考虑告诉你在这个情况下你想要什么内容,谢谢马丁的回复,但是它仍然不起作用:或者我在这里做了什么错误吗?我只是在计算之前添加了。
$( '#test' ).click ( function () {

    var size = elementSize ( '#content' );
    $( '#result' ).html ( size.width + ' x ' + size.height + ' px' );
} );

function elementSize ( elementId ) {

    var html_org = $( elementId ).html ();
    var html_calc = '<span>' + html_org + '</span>';
    $( elementId ).html( html_calc );

    var ret = {
        width: $( elementId ).find( 'span:first' ).width (),
        height: $( elementId ).find( 'span:first' ).height (),
    };

    $( elementId ).html( html_org );

    return ret;
}
$('#test').click(function () {

    var size = elementSize('#content');
    $('#result').html(size.width + ' x ' + size.height + 'px');
});

function elementSize(elementId) {

    var html_org = $(elementId).html();
    var $html_calc = $('<span>' + html_org + '</span>').css({
        position: 'absolute',
        top: -9999,
        left: -9999
    }).appendTo('body');



    var ret = {
        width: $html_calc.width(),
        height: $html_calc.height(),
    };
    $html_calc.remove();

    return ret;
}
function elementSize ( elementId ) {
    ...
    $( elementId ).html( html_calc ).show();    
    var ret = {
        ...
    };    
    $( elementId ).html( html_calc ).hide();    
    ...    
    return ret;
}