【发布时间】:2020-06-18 12:44:09
【问题描述】:
我是 jquery 新手,在应用某些方法时遇到了问题。 我正在尝试通过可拖动层中的运算符来获得正确的结果,从而获得所有运算符的最大值以便能够进行以后的计算。 当我正在寻找的是获得具有最高价值的那个时,它让我返回了该层中的所有运算符。 这是我的代码:
var operatorLayer = containerParent.find('.main-operators-layer')[0];
operatorsData = $(operatorLayer).children('.main-operator');
var actualContainerWidth = $.grep(operatorsData, function(element, index) {
var rightValues = [];
var rightOffsetData = element.getBoundingClientRect().right;
rightValues.push(rightOffsetData);
Math.max(rightValues);
return rightValues;
});
如果有人能纠正我,我将不胜感激。 谢谢
【问题讨论】:
-
rightOffsetData 是一个数组吗?如果是这样,只需使用 Math.max。
-
我试过了``` var actualContainerWidth = $.grep(operatorsData, function(element, index) { var rightOffsetData = element.getBoundingClientRect().right; return Math.max(rightOffsetData) ; }); ``` 但它仍然返回给我层中的所有运算符。
-
rightOffsetData 是什么样的?
-
在这种情况下,图层上有 3 个运算符返回一个像这样的数组 [div.main-operator.operator-0.main-default-operator.ui-draggable, div.main-operator. operator-1.main-default-operator.ui-draggable, div.main-operator.operator-2.main-default-operator.ui-draggable]
-
Math.max
returns最大值;它不会将输入转换为最大值。
标签: jquery arrays loops math grep