Javascript 计算值未进入循环
我需要计算VarPackPrice+VarPackPrices+VarAla,它正在进入循环。我在控制台中得到了所有值,但在tprice中,加法没有得到。请帮忙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
$( "#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 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);
});