如何从纯javascript获得div的最长高度?

如何从纯javascript获得div的最长高度?,javascript,arrays,Javascript,Arrays,我试图实现通过jQuery可以实现的功能,但为了学习javascript,我避免使用jQuery。我正在尝试从.map获取最大的数字。这就是我到目前为止所做的 function equalHeight(className) { var i = Array.from(document.getElementsByClassName(className)); i.forEach(function(items) { console.info(Math.max(items.scrollHe

我试图实现通过jQuery可以实现的功能,但为了学习javascript,我避免使用jQuery。我正在尝试从
.map
获取最大的数字。这就是我到目前为止所做的

function equalHeight(className) {
  var i = Array.from(document.getElementsByClassName(className));
  i.forEach(function(items) {
    console.info(Math.max(items.scrollHeight));
  });
}
但这并没有记录任何东西

console.info(items.scrollHeight);
记录所有三个数字

我知道我错过了一个基本的错误,有人能指出我做错了什么吗


基本上,我希望获得最长的高度,并将其设置为div的其余部分

我将使用
.getBoundingClientRect()
,然后对每个迭代进行比较

function equalHeight(className) {
  const elements = Array.from(document.getElementsByClassName(className));
  let highest = 0;

  elements.forEach(function(item) {
     const itemH = item.getBoundingClientRect().height;
     highest = itemH > highest ? itemH : highest;
  });

  return highest;
}

医生:

我不是100%确定你到底想要什么,但有几件事:

1) 从
getElementsByClassName
切换到
querySelectorAll
会为您提供一个内置了
forEach
的对象

2) 您只将1个值传递给
Math.max

函数相等高度(类名){
var max=0;
document.querySelectorAll(className.forEach)(
功能(el){
控制台信息(数学最大值(el.scrollHeight,最大值));
如果(标高高度>最大值){
最大值=标高高度;
}
}
);
返回最大值;
}
var max=等高('测试');
控制台信息(“最大分区高度:”,最大值)
div{
边框:1px红色虚线;
边际:2px0;
}
1
一个
两个
一个
两个
三个
您的代码运行良好。需要查看HTML和CSS以确定哪些内容不适合您。这就是@RandyCasburn点的意思,但我在查看HTML和CSS后发布了这个问题,并做了
console.info(items.scrollHeight)
,很明显问题出在我的javascript代码中好的,重点是,但是,我在
Math.max
中传递了一个完整的对象,这难道不足以给出对象的最大数量吗?
Mat.max
想要的是数字而不是对象。您可以更改代码,将对象数组转换为高度数组,然后将其传递到
Math.max.apply(Math,arrayOfVals)
快速问题:现在如何将此值用作其余div的高度?效果很好