在 JS 中乘法不起作用

Multiplying in JS not working

我无法真正解释我的问题,但我正在尝试在我的网站上创造总金额。 我正在尝试将数量乘以尺寸。

function total(){
                var x = document.getElementById("size").selectedIndex;
                var y = document.getElementById("price");
                var z = document.getElementById("price2");
        var z = document.getElementById("quantity").value;
                if ((document.getElementsByTagName("option")[x].value) == "XS") {
                    y.innerHTML="$"."10.00"*"a";
                    z.value="$"."10.00"*"a";
                } 
                else if ((document.getElementsByTagName("option")[x].value) == "S") {
                    y.innerHTML="$"."12.00"*"a";
                    z.value="$"."12.00"*"a";
                } 
                else if ((document.getElementsByTagName("option")[x].value) == "M") {
                    y.innerHTML="$"."13.00"*"a";
                    z.value="$"."13.50"*"a";
                } 
                else if ((document.getElementsByTagName("option")[x].value) == "L") {
                    y.innerHTML="$"."15.00"*"a";
                    z.value="$"."15.00"*"a";
                }
                else if ((document.getElementsByTagName("option")[x].value) == "XL") {
                    y.innerHTML="$"."20.00"*"a";
                    z.value="$"."20.00"*"a";
                }
            };

此代码使程序完全无法运行。

感谢任何帮助,Lachlan

您尚未发布显示该问题的模拟示例,但可能的一个问题是您如何获得 x:

的值
  var x = document.getElementById("size").selectedIndex;

可以直接取值代替:

  var x = document.getElementById("size").value;

那么你有:

if (x == "XS") {
  ...
} 
  else if (x == "S") {
  ...

等等。但是所有这些 if..else 语句都可能被 switch.

替换

然后就是这样的代码:

  y.innerHTML="$"."10.00"*"a";
  z.value="$"."10.00"*"a";

我不确定这个点是干什么用的,也许你在尝试连接?

  y.innerHTML = "$" + (10.00 * a);
  z.value = "$" + (10.00 * a);

其中 a 是来自其他地方的值?如果你想要两位小数,那么:

  y.innerHTML = "$" + (10.00 * a).toFixed(2);

哦,请注意,选项的值可以与显示的文本不同,因此您可以:

  <option value="13.50">M</option>

所以现在你可以删除 if..else 块并且只需要:

  y.innerHTML = "$" + (x * a).toFixed(2);

x 将是一个字符串,但乘法会将其强制转换为数字。