Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在单独的div中获取子元素高度_Javascript_Jquery - Fatal编程技术网

Javascript 在单独的div中获取子元素高度

Javascript 在单独的div中获取子元素高度,javascript,jquery,Javascript,Jquery,我想得到每个div的子元素,然后根据它们各自的总子元素高度设置每个div的高度 我试图找到一个类似的问题,但找不到我想要的。我知道我需要一个。每个功能,但我不能让它工作 下面是我的代码: HTML 我想要实现的是,假设第一个div的子元素的总高度是100px,那么它会将第一个div设置为100px高度。如果第二个div的子元素的总高度为300px,则它会将第二个div设置为300px高度。试试看 $("ul li").each(function() { $(this).find("div

我想得到每个div的子元素,然后根据它们各自的总子元素高度设置每个div的高度

我试图找到一个类似的问题,但找不到我想要的。我知道我需要一个。每个功能,但我不能让它工作

下面是我的代码:

HTML

我想要实现的是,假设第一个div的子元素的总高度是100px,那么它会将第一个div设置为100px高度。如果第二个div的子元素的总高度为300px,则它会将第二个div设置为300px高度。

试试看

$("ul li").each(function() {
    $(this).find("div").each(function(){ //this line changed, iterating individual li's div rather than whole bunch
        var div_ht = 0;
        $(this).children().each(function() { //observe change in this line too
            div_ht += $(this).outerHeight(true);
        });
        $(this).height(div_ht); //observe change in this line too
    });
});
此外,如果您只想将div的高度设置为其子级高度的总和,则只需将这些div的高度设置为“自动”

试一试

此外,如果您只想将div的高度设置为其子级高度的总和,则只需将这些div的高度设置为“自动”


在@gurvinder372回答之后,您最好使用一个查询:

$("ul li div").each( function() {
  var divHeight = 0;
  $(this).children().each( function() {
    divHeight += $(this).height();
  });
  $(this).height(divHeight);
})
因为您希望为每个ul li div元素执行此工作。 需要注意的是,在each/function语句中:

这指向HTML元素,请参见参考文档 $this指向从HTML元素构造的JQuery元素,从而为您提供了JQuery库的所有灵活性 编辑 函数find从调用它的选择开始执行新的选择

从ul li元素的根上执行选择,然后对每个元素执行子选择:

$("ul li").find("div");
在ul li div元素的根上执行frmo选择=>这应该更有效,如果您不打算在ul li级别上执行任何作业,请使用它:


这相当于$.findul li div

在@gurvinder372回答之后,您不妨使用一个查询:

$("ul li div").each( function() {
  var divHeight = 0;
  $(this).children().each( function() {
    divHeight += $(this).height();
  });
  $(this).height(divHeight);
})
因为您希望为每个ul li div元素执行此工作。 需要注意的是,在each/function语句中:

这指向HTML元素,请参见参考文档 $this指向从HTML元素构造的JQuery元素,从而为您提供了JQuery库的所有灵活性 编辑 函数find从调用它的选择开始执行新的选择

从ul li元素的根上执行选择,然后对每个元素执行子选择:

$("ul li").find("div");
在ul li div元素的根上执行frmo选择=>这应该更有效,如果您不打算在ul li级别上执行任何作业,请使用它:


这相当于$.findul li div

如果我是正确的,您正在尝试获取每个div子元素的平均高度?Hi Fil,谢谢您的帮助,但我已经在gurvinder的帮助下解决了我的问题。我没有得到每个div子元素的平均高度。实际上,我想根据每个div子元素的高度设置每个div的高度。如果我是正确的,您正在尝试获取每个div子元素的平均高度?嗨,Fil,谢谢您的帮助,但我已经在gurvinder的帮助下解决了我的问题。我没有得到每个div子元素的平均高度。实际上,我想根据每个div自己的子元素的height.OMG来设置每个div的高度!谢谢!我已经试了两天,但还是没能实现。我不能使用高度自动,因为我的div使用的是绝对位置,我需要使它显示在中间。所以关键是使用,找到。但是我有点困惑,使用。查找和不使用它之间的区别。天哪!谢谢!我已经试了两天,但还是没能实现。我不能使用高度自动,因为我的div使用的是绝对位置,我需要使它显示在中间。所以关键是使用,找到。不过,这让我有点困惑,使用。查找和不使用它之间的区别。谢谢简化版本!我确实使用了$ul li div,这有点奇怪;函数,但它返回了3个div中所有子元素的高度。但现在它工作得非常好@谢谢你的简化版!我确实使用了$ul li div,这有点奇怪;函数,但它返回了3个div中所有子元素的高度。但现在它工作得非常好@
$("ul li").find("div");
$("ul li div");