Javascript 如何';s jquery是否能够获取隐藏div的高度?

Javascript 如何';s jquery是否能够获取隐藏div的高度?,javascript,jquery,Javascript,Jquery,请看下面的链接 HTML: 单独使用jquery如何获得隐藏div的高度?谢谢 将其用于脚本: $(document).ready(function(){ var x = document.getElementById("test").getBoundingClientRect().height; $("#test").hide(); alert($("#test").height()); alert(x); }); 在脚本中使用此选项: $(document

请看下面的链接

HTML:


单独使用jquery如何获得隐藏div的高度?谢谢

将其用于脚本:

$(document).ready(function(){
    var x = document.getElementById("test").getBoundingClientRect().height;
    $("#test").hide();
    alert($("#test").height());
    alert(x);
});

在脚本中使用此选项:

$(document).ready(function(){
    var x = document.getElementById("test").getBoundingClientRect().height;
    $("#test").hide();
    alert($("#test").height());
    alert(x);
});

在纯JavaScript中,您可以执行以下操作,并且应该可以正常工作:

// $("#test").hide();
// alert($("#test").height());

var el = document.getElementById("test");
el.style.position = 'absolute';
el.style.visibility = 'hidden';

alert(el.offsetHeight); // 40
jQuery可能正在以其他方式为您发挥魔力。使用
display:none
获取隐藏对象的尺寸是不可靠的


编辑:这是最新的。你必须把一些点连起来,但看起来并不复杂

在纯JavaScript中,您可以执行类似的操作,它应该可以工作:

// $("#test").hide();
// alert($("#test").height());

var el = document.getElementById("test");
el.style.position = 'absolute';
el.style.visibility = 'hidden';

alert(el.offsetHeight); // 40
jQuery可能正在以其他方式为您发挥魔力。使用
display:none
获取隐藏对象的尺寸是不可靠的


编辑:这是最新的。你必须把一些点连起来,但看起来并不复杂

您可以使用

$('#test1').height();
$('#test2').height();

height()函数计算给定元素的高度。

可以使用

$('#test1').height();
$('#test2').height();
height()函数计算给定元素的高度。

请注意差异:

Jquery将其隐藏,因此它知道隐藏元素在隐藏之前的高度

而javascript只返回当前高度

$(document).ready(function(){        
    alert(document.getElementById("test").getBoundingClientRect().height); // 40
    $("#test").hide();    
    alert(document.getElementById("test").getBoundingClientRect().height); // 0
});
请注意区别:

Jquery将其隐藏,因此它知道隐藏元素在隐藏之前的高度

而javascript只返回当前高度

$(document).ready(function(){        
    alert(document.getElementById("test").getBoundingClientRect().height); // 40
    $("#test").hide();    
    alert(document.getElementById("test").getBoundingClientRect().height); // 0
});

我没有从其他答案中得到太多,我想知道同样的事情,并找到了答案

使用if
getClientRects()
getBoundingClientRect()
不返回任何有用的内容,可以将这些属性临时添加到元素中:

{ position: "absolute", visibility: "hidden", display: "block" }

然后调用
val=elem.getBoundingClientRect()[name]以获得宽度(第127行-3.0.0-pre)。

我从其他答案中没有得到多少,我想知道同样的事情,并找到了答案

使用if
getClientRects()
getBoundingClientRect()
不返回任何有用的内容,可以将这些属性临时添加到元素中:

{ position: "absolute", visibility: "hidden", display: "block" }

然后调用
val=elem.getBoundingClientRect()[name]
获取宽度(第127-3.0.0-pre行)。

您能解释一下您到底想要什么吗您已经在使用JQuery了,但为什么仍然使用
document.getElementById(“测试”)
?为什么不使用
$(“#test”)?这不是我面临的问题。我只是想了解jquery是如何获得高度的。为什么你认为在隐藏div之前存储高度对jquery来说很困难?你能解释一下你到底想要什么吗你已经在使用jquery了,但是为什么仍然使用
document.getElementById(“test”)
?为什么不使用
$(“#test”)?这不是我面临的问题。我只是想了解jquery是如何获得高度的。为什么您认为在隐藏div之前存储高度对jquery来说会很困难??