如何从纯javascript获得div的最长高度?
我试图实现通过jQuery可以实现的功能,但为了学习javascript,我避免使用jQuery。我正在尝试从如何从纯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
.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的高度?效果很好