Javascript 获取div的高度,全部隐藏在一个div中

Javascript 获取div的高度,全部隐藏在一个div中,javascript,styles,height,Javascript,Styles,Height,寻找一个JavaScript解决方案(jQuery就可以了)来获取一些div的高度,这些div都位于一个display设置为none的父div中 伪代码: <div id="hiddenParent" style="display:none"> <div class="childDiv">child div 1</div> <div class="childDiv">child div 2</div> <div cla

寻找一个JavaScript解决方案(jQuery就可以了)来获取一些div的高度,这些div都位于一个display设置为none的父div中

伪代码:

<div id="hiddenParent" style="display:none">
  <div class="childDiv">child div 1</div>
  <div class="childDiv">child div 2</div>
  <div class="childDiv">child div 3</div>
</div>

儿童组1
儿童事务组2
儿童事务组3
假设类ChildDiv没有指定高度,也没有在任何地方设置任何ChildDiv元素的高度

当“hiddenParent”设置为显示:无时,有没有关于如何获得身高的想法

试试看

关于这个问题,有很多好帖子。

试着看一看

var clone = $("#hiddenParent").clone().css("display","block").css("position","absolute").css("left","-9999px");
$("#hiddenParent").after(clone);

alert(clone.outerHeight());
clone.remove();
​
关于这个问题有很多好帖子

var clone = $("#hiddenParent").clone().css("display","block").css("position","absolute").css("left","-9999px");
$("#hiddenParent").after(clone);

alert(clone.outerHeight());
clone.remove();
​
使用jQuery


使用jQuery。

在jQuery获取元素高度后,可以隐藏
div

HTML(减去样式)


注意:这段代码只是一个示例,只会得到第一个子元素的高度,但您可以得到如何获得隐藏元素高度的要点。

在jQuery获得元素高度后,您可以隐藏
div

HTML(减去样式)


注意:这段代码只是一个例子,只会得到第一个孩子的高度,但你会得到如何得到隐藏元素高度的要点。

晚会迟到了,但我还是会给出我对这一点的看法。 下面的解决方案是用普通Javascript编写的,但显然相同的逻辑也适用于jQuery

元素不一定需要才能被测量,它们只需要才能
显示:无。显示:无表示计算样式中的高度为0,因此我们必须找到解决方法

我们可以通过两个简单的步骤模拟
显示:none

  • 我们设置了可见性:隐藏(因此元素不可见)
  • 我们设置
    位置:绝对
    (因此元素不占用空间)
  • 然后我们将其
    显示设置为
    (或空字符串,只要它不是
    )。 然后我们将有一个不可见的div,它将不占用文档中的任何空间,但将保留其自己的原始维度。这样,即使css中以前没有设置维度,也可以通过JavaScript完全访问它

    在一个循环中,我们将对需要的每个div运行
    getComputedStyle
    ,查找其高度

     // start loop
    
     getComputedStyle(el).getPropertyValue('height');
    
     // end loop
    
    如果在循环结束时仍需要将显示设置为“无”,则可以将其还原。 脚本实际上并不复杂,运行时没有任何闪烁

    这是一个例子

    <代码> var PAR =文档.GETelEnMyBID(“HIDENDENCEND”) CD= PAR。 伦恩, 高度=[], 我 函数getHeight(){ len=cd.长度; //1.我们隐藏父母 能见度=“隐藏”; //2.我们将其位置设置为绝对,因此它不会 //在窗口内腾出空间 位置=绝对值; //3.我们将其显示设置为“阻挡”,以恢复其自然高度 显示=“块”; //4.我们开始绕着它的孩子转 而(len--){ //我们得到每个孩子的身高…这里我们只是将他们存储在数组中, //稍后我们会提醒您 高度[len]=window.getComputedStyle(cd[len]).getPropertyValue('height'); } //5.工作完成后,我们可以恢复一切正常(如果需要) CSSTEXT=“显示:无”; } document.getElementById('starter')。addEventListener('click',function(){ getHeight(); 警戒(高度); });
    #隐藏父项,。另一个div{
    背景:水鸭;
    宽度:40%;
    填充:20px;
    文本对齐:居中;
    颜色:白色;
    字体系列:Arial;
    文本转换:大写;
    颜色:#ccc;
    }
    childDiv先生{
    背景:紫色;
    填充:10px;
    边缘底部:10px;
    }
    .另一个分区{
    背景:橙色;
    颜色:#1F9091;
    }
    计算高度
    儿童组1
    儿童事务组2
    儿童事务组3
    这是另一个部门
    
    晚会迟到了,但无论如何我会对这件事给出我的看法。 下面的解决方案是用普通Javascript编写的,但显然相同的逻辑也适用于jQuery

    元素不一定需要才能被测量,它们只需要才能
    显示:无。显示:无表示计算样式中的高度为0,因此我们必须找到解决方法

    我们可以通过两个简单的步骤模拟
    显示:none

  • 我们设置了可见性:隐藏(因此元素不可见)
  • 我们设置
    位置:绝对
    (因此元素不占用空间)
  • 然后我们将其
    显示设置为
    (或空字符串,只要它不是
    )。 然后我们将有一个不可见的div,它将不占用文档中的任何空间,但将保留其自己的原始维度。这样,即使css中以前没有设置维度,也可以通过JavaScript完全访问它

    在一个循环中,我们将对需要的每个div运行
    getComputedStyle
    ,查找其高度

     // start loop
    
     getComputedStyle(el).getPropertyValue('height');
    
     // end loop
    
    如果在循环结束时仍需要将显示设置为“无”,则可以将其还原。 脚本实际上并不复杂,运行时没有任何闪烁

    这是一个例子

    <代码> var PAR =文档.GETelEnMyBID(“HIDENDENCEND”) CD= PAR。 伦恩, 高度=[], 我 函数getHeight(){ len=cd.长度; //1.我们隐藏父母 能见度=“隐藏”; //2.我们将其位置设置为绝对,因此它不会 //在窗口内腾出空间 位置=绝对值; //3.我们将其显示设置为“阻挡”,以恢复其自然高度 显示=“块”; //4.我们开始绕着它的孩子转 而(len--){ //我们得到每个孩子的身高…这里我们只是将他们存储在数组中, //我们会通知lat的