在 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 将是一个字符串,但乘法会将其强制转换为数字。
我无法真正解释我的问题,但我正在尝试在我的网站上创造总金额。 我正在尝试将数量乘以尺寸。
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 将是一个字符串,但乘法会将其强制转换为数字。