Javascript 将变量值从if语句传递到if/else外部

Javascript 将变量值从if语句传递到if/else外部,javascript,jquery,Javascript,Jquery,当用户选中我的复选框时,我需要实时更新我的“计算价格”值。alert()可以正常工作并以当前方式计算,但我不知道为什么它只显示“0”而不被更改 $(document).ready(function () { //Global Configurations. var calculated_price = 0; var final_price = "قیمت نهایی برابر است با " + calculated_price + " تومان "; /

当用户选中我的复选框时,我需要实时更新我的“计算价格”值。alert()可以正常工作并以当前方式计算,但我不知道为什么它只显示“0”而不被更改

$(document).ready(function () {
    //Global Configurations.
    var calculated_price = 0;
    var final_price = "قیمت نهایی برابر است با " + calculated_price + " تومان ";

    // Menu Items.
    var cbSelector = $("[name='cb[]']");
    cbSelector.change(function () {
        if (this.checked){
            var currentCBSelected = $(this);
            var currentCBValue = parseInt(currentCBSelected.val());

            var previousNSelected = $(this).prev("input");
            var previousNValue = parseInt(previousNSelected.val());

            previousNSelected.css("visibility","visible");

            calculated_price += currentCBValue * previousNValue;
        }
        else {
            // Do somethings.
        }

    });

    // Calculated Price.
    $("#calculated_price").html(final_price);

});
这是我的index.html文件,它将作为复选框显示数字输入,它们的值可以更改(因此计算的价格必须更改)


ز㶋نوود:

ز

  • چای و ساید کیک
  • چای سیاه
  • چای سبز
  • چای و خرما
  • چای و نبات
  • چای و دارچین
  • آبمیوه(پرتقال،هندوانه،طالبی)
  • هات چاکلت
  • نسکافه
  • کاپوچینو
  • شکلات گلاسه
  • سالاد روز
  • سیب زمینی
  • غذای روز کودک
  • بستنی(12 اسکوپ)

问题似乎在于,您希望计算出的\u price变量的更改自动反映在最终的\u price字符串中,但实际情况并非如此。每次计算的\u price变量更改时,您都必须将其插入到最终的\u price字符串中,然后再次更新html

更改此行:

var final_price = "قیمت نهایی برابر است با " + calculated_price + " تومان ";
致:

在if语句末尾添加此行:

$("#calculated_price").html(final_price.replace("{calc}", calculated_price.toString());
并将最后一行更改为:

$("#calculated_price").html(final_price.replace("{calc}", calculated_price.toString());

问题似乎在于,您希望对计算的\u price变量所做的更改自动反映在最终的\u price字符串中,但实际情况并非如此。每次计算的\u price变量更改时,您都必须将其插入到最终的\u price字符串中,然后再次更新html

更改此行:

var final_price = "قیمت نهایی برابر است با " + calculated_price + " تومان ";
致:

在if语句末尾添加此行:

$("#calculated_price").html(final_price.replace("{calc}", calculated_price.toString());
并将最后一行更改为:

$("#calculated_price").html(final_price.replace("{calc}", calculated_price.toString());

将html代码添加到计算后似乎永远不会显示值的位置。如果您只显示初始值0,并且从不更新显示,那么它将只显示0。您需要添加此$(“#计算价格”).html(最终价格);在更改中,将html代码添加到计算后,您似乎永远不会显示该值。如果您只显示初始值0,并且从不更新显示,那么它将只显示0。您需要添加此$(“#计算价格”).html(最终价格);你能解释一下你到底改变了什么吗?这些改变能做什么?完成了。我知道这也许不是最好的解决办法,但我认为这是一个他应该很容易理解的办法。谢谢。我不熟悉Javascript中的花括号语法,但我也不是Javascript开发人员。我不确定这有多普遍,但在PHP中,基本上您所做的更改不会有任何区别。本例中的花括号没有什么特别之处。这只是一种将计算出的价格插入字符串中间的简单方法。您熟悉PHP花括号(复杂表达式)语法吗?我只是想知道它的语法是否相同。另外,为什么在您提到的最后两行代码中使用它?你不能把变量本身放在那里吗?你能解释一下你实际上改变了什么吗?这些改变能做什么?完成了。我知道这也许不是最好的解决办法,但我认为这是一个他应该很容易理解的办法。谢谢。我不熟悉Javascript中的花括号语法,但我也不是Javascript开发人员。我不确定这有多普遍,但在PHP中,基本上您所做的更改不会有任何区别。本例中的花括号没有什么特别之处。这只是一种将计算出的价格插入字符串中间的简单方法。您熟悉PHP花括号(复杂表达式)语法吗?我只是想知道它的语法是否相同。另外,为什么在您提到的最后两行代码中使用它?你不能把变量本身放在那里吗?