Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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 计算值未进入循环_Javascript_Jquery - Fatal编程技术网

Javascript 计算值未进入循环

Javascript 计算值未进入循环,javascript,jquery,Javascript,Jquery,我需要计算VarPackPrice+VarPackPrices+VarAla,它正在进入循环。我在控制台中得到了所有值,但在tprice中,加法没有得到。请帮忙 $( "#get_total" ).click(function() { alert('calculation pending'); var idSelector = function() { return this.value; }; var packprices = 0; var packprice

我需要计算VarPackPrice+VarPackPrices+VarAla,它正在进入循环。我在控制台中得到了所有值,但在tprice中,加法没有得到。请帮忙

$( "#get_total" ).click(function() {
    alert('calculation pending');
    var idSelector = function() { return this.value; };
    var packprices = 0;
    var packprice = 0;
    var c = $(":checkbox:checked").map(idSelector).get();

    for (var i = 0; i < c.length; i++) {
        // console.log(c[i]);
        // console.log(parseInt($(".longduration_price" + c[i]).val()));
        if($(".duration_status" + c[i]).is(':checked'))
        {
            var packprice = !isNaN(parseInt($(".longduration_price" + c[i]).val())) ? parseInt($(".longduration_price" + c[i]).val()) : 0 ;
            console.log(packprice);
        }else{
            var packprices = !isNaN(parseInt($(".packpriceone" + c[i]).val())) ? parseInt($(".packpriceone" + c[i]).val()) : 0 ;
            console.log(packprices); 
        }
        var ala = parseInt($("#alacartprice").val());
        var tprice = packprice + packprices + ala;
    }

    console.log(tprice);

    $("#totalprice").val(tprice);
});

必须在for循环之前定义变量

$get_总计。单击函数{ 警报“计算待定”; var idSelector=函数{ 返回此.value; }; var包装价格=0; var-packprice=0; var c=$:复选框:checked.mapidSelector.get; var tprice=0 对于变量i=0;i我们假设您有如下span元素:

 <span id="totalprice"></span>
您需要在循环外部声明tprice,并将结果添加到tprice,如下所示

$( "#get_total" ).click(function() {
alert('calculation pending');
var idSelector = function() { return this.value; };
var packprices = 0;
var packprice = 0;
var c = $(":checkbox:checked").map(idSelector).get();
var tprice = 0;
for (var i = 0; i < c.length; i++) {
    // console.log(c[i]);
    // console.log(parseInt($(".longduration_price" + c[i]).val()));
    if($(".duration_status" + c[i]).is(':checked'))
    {
        var packprice = !isNaN(parseInt($(".longduration_price" + c[i]).val())) ? parseInt($(".longduration_price" + c[i]).val()) : 0 ;
        console.log(packprice);
    }else{
        var packprices = !isNaN(parseInt($(".packpriceone" + c[i]).val())) ? parseInt($(".packpriceone" + c[i]).val()) : 0 ;
        console.log(packprices); 
    }
    var ala = parseInt($("#alacartprice").val());
    tprice += packprice + packprices + ala;
}

console.log(tprice);

$("#totalprice").val(tprice);
});

请您也发布您的html或共享JSFIDLE,它很容易调试实际上有很多代码直接从数据库用php获取所有值。所以我不能在这里添加完整的代码。除了期望的结果之外,您得到的值是什么?我在计算时在控制台中得到最后一个检查值。很难找出您的问题。你的代码看起来不错。循环外部/内部的声明并不重要。您是否将“0”作为o/p或某些串联值,如“12+234”?我需要单击按钮进行所有计算。上面调用的代码中没有单击。代码的第一行为$get\u total。单击函数{,我正在编辑我的应答无效..我只获取值最后一个复选框。我获取控制台中的所有值。但当我单击复选框外部时,没有获取totalGetting right ans,但当我选中duration_状态时,如果值加倍,则处于该状态。我们需要更多上下文来了解您试图实现的内容。否如果同时选中或未选中两个内部复选框,则总价是正确的。如果当时未选中其中一个,则值是内部复选框的两倍。我不明白您所说的内部复选框是什么意思,您尚未共享HTML
$( "#get_total" ).click(function() {
alert('calculation pending');
var idSelector = function() { return this.value; };
var packprices = 0;
var packprice = 0;
var c = $(":checkbox:checked").map(idSelector).get();
var tprice = 0;
for (var i = 0; i < c.length; i++) {
    // console.log(c[i]);
    // console.log(parseInt($(".longduration_price" + c[i]).val()));
    if($(".duration_status" + c[i]).is(':checked'))
    {
        var packprice = !isNaN(parseInt($(".longduration_price" + c[i]).val())) ? parseInt($(".longduration_price" + c[i]).val()) : 0 ;
        console.log(packprice);
    }else{
        var packprices = !isNaN(parseInt($(".packpriceone" + c[i]).val())) ? parseInt($(".packpriceone" + c[i]).val()) : 0 ;
        console.log(packprices); 
    }
    var ala = parseInt($("#alacartprice").val());
    tprice += packprice + packprices + ala;
}

console.log(tprice);

$("#totalprice").val(tprice);
});