如何结合这两个jquery计算

how can I combine these two jquery calculations?

本文关键字:两个 jquery 计算 结合 何结合      更新时间:2023-09-26

我有一些输入有两个宽度和两个高度的英尺/英寸。我得把它们换算成英尺,得到平方英尺。例如,宽度为1'2",高度为1'2"。另一个宽度是2'1",高度是2'1"。我必须把宽度转换成英尺然后乘以它们的高度然后乘以第一个宽度和高度然后加上第二个宽度和高度。此外,每条边都需要在上面加上1.6倍的乘法。我已经对第一个宽度和高度进行了处理,但我认为对第二个进行这样做是复制的,但我不太清楚将它们组合在一起的最佳方法是什么,因为。

我在js

中有这样的内容
$('.total-footage').on('click', function(){
    /*Side A Calculation*/
    var $sideAFootValueW = parseInt($('.dimensions-side-a .dimension-width .dimension-input-foot').val());
    var $sideAInchValueW = parseInt($('.dimensions-side-a .dimension-width .dimension-input-inch').val());
    if(($sideAFootValueW == "") || (!$.isNumeric($sideAFootValueW))){
        $sideAFootValueW = 0;
    }
    if(($sideAInchValueW == "") || (!$.isNumeric($sideAInchValueW))){
        $sideAInchValueW = 0;
    }else{
        $sideAInchValueW = $sideAInchValueW/12;
    }
    var totalFootAW = $sideAFootValueW + $sideAInchValueW;
    var $sideAFootValueH = parseInt($('.dimensions-side-a .dimension-height .dimension-input-foot').val());
    var $sideAInchValueH = parseInt($('.dimensions-side-a .dimension-height .dimension-input-inch').val());
    if(($sideAFootValueH == "") || (!$.isNumeric($sideAFootValueH))){
        $sideAFootValueH = 0;
    }
    if(($sideAInchValueH == "") || (!$.isNumeric($sideAInchValueH))){
        $sideAInchValueH = 0;
    }else{
        $sideAInchValueH = $sideAInchValueH/12;
    }
    var totalFootAH = $sideAFootValueH + $sideAInchValueH;
    var sideATotal = totalFootAH * totalFootAW * 1.6;
    /*Side B Calculation*/
    var $sideBFootValueW = parseInt($('.dimensions-side-b .dimension-width .dimension-input-foot').val());
    var $sideBInchValueW = parseInt($('.dimensions-side-b .dimension-width .dimension-input-inch').val());
    if(($sideBFootValueW == "") || (!$.isNumeric($sideBFootValueW))){
        $sideBFootValueW = 0;
    }
    if(($sideBInchValueW == "") || (!$.isNumeric($sideBInchValueW))){
        $sideBInchValueW = 0;
    }else{
        $sideBInchValueW = $sideBInchValueW/12;
    }
    var totalFootBW = $sideBFootValueW + $sideBInchValueW;
    var $sideBFootValueH = parseInt($('.dimensions-side-b .dimension-height .dimension-input-foot').val());
    var $sideBInchValueH = parseInt($('.dimensions-side-b .dimension-height .dimension-input-inch').val());
    if(($sideBFootValueH == "") || (!$.isNumeric($sideBFootValueH))){
        $sideBFootValueH = 0;
    }
    if(($sideBInchValueH == "") || (!$.isNumeric($sideBInchValueH))){
        $sideBInchValueH = 0;
    }else{
        $sideBInchValueH = $sideBInchValueH/12;
    }
    var totalFootBH = $sideBFootValueH + $sideBInchValueH;
    var sideBTotal = totalFootBH * totalFootBW * 1.6;
    $('.total').empty();
    $('.total').append(sideATotal+sideBTotal);
});

我想我应该有一个函数,所以这个计算可以很容易地完成,即使有更多的边我需要计算

将这两个帮助函数添加到您的代码

function getSideDimensions($side){
    var width = getDimension($side.find('.dimension-width'));
    var height = getDimension($side.find('.dimension-height'));
    return width * height * 1.6;
}
function getDimension($dimension){
    var feet = $dimension.find('.dimension-input-foot');
    var inches = $dimension.find('.dimension-input-inch');
    if((feet == "") || (!$.isNumeric(feet))){
        feet = 0;
    }
    if((inches == "") || (!$.isNumeric(inches))){
        inches = 0;
    }else{
        inches = inches/12;
    }
    return feet + inches;
}

并将代码更改为

$('.total-footage').on('click', function(){
    var sideATotal = getSideDimensions($('.dimensions-side-a'));
    var sideBTotal = getSideDimensions($('.dimensions-side-b'));
    $('.total').empty();
    $('.total').append(sideATotal+sideBTotal);
}