JS中的乘法不起作用

时间:2016-05-16 05:25:12

标签: javascript html math multiplication totals

我无法解释我的问题,但我想在我的网站上创建一笔总额。 我试图将数量乘以大小。

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

1 个答案:

答案 0 :(得分:4)

您尚未发布显示问题的模拟示例,但可能有一个问题是如何获得 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 将是一个字符串,但乘法会将其强制转换为数字。