gpt4 book ai didi

javascript - 如何让 if/else 语句在函数内部工作

转载 作者:行者123 更新时间:2023-11-28 14:23:31 26 4
gpt4 key购买 nike

我正在尝试在函数内使用 if/else 语句来实现 50 份以上的订单免运费 (s = 0)。

我之前的运费相当于订单成本的 15%,现在已被注释掉。在我尝试添加 if/else 语句之前,该函数确实起作用了。

没有显示错误代码。

function estcost() {

var p = document.getElementById("price").value; //gets price for plant as entered in box by user
var p = parseFloat(document.getElementById("price").value);
var t = 0.086 * p; //calculates arizona sales tax
//var s = 0.15*p;//calculates shipping cost based off of 15% of plant cost
var s;
if (p < 50) {
s = 0.15 * p; //shipping for orders under $50
} else {
s = 0; //shipping for orders $50 and over
}

return s;
var c = t + s + Number(p); //calculates final cost
var f = '$' + c.toFixed(2); //rounds cost to 2 decimal places

document.getElementById("result").innerHTML = f; //allows me to call f in html
}

最佳答案

您有几个问题:

  1. 您声明p两次。虽然这并非完全错误,但没有必要这样做。删除第一个var p = document....

  2. return s在显示结果之前。使用return将停止该函数的运行,从而使其下面的所有代码都不会运行。要么删除它(如果你没有用它做任何事情),要么将它移动到你的函数的底部。

  3. 虽然这不是必要的更改,但您可以声明 var s成为var s = 0并且仅在 p < 50 时更改它,允许您删除 else

请参阅下面的工作示例:

function estcost() {
var p = parseFloat(document.getElementById("price").value);
var t = 0.086 * p; //calculates arizona sales tax

var s = 0;
if (p < 50) {
s = 0.15 * p; //shipping for orders under $50
}
var c = t + s + Number(p); //calculates final cost
var f = '$' + c.toFixed(2); //rounds cost to 2 decimal places
document.getElementById("result").innerHTML = f; //allows me to call f in html

return s; // move to bottom
}
<input type="number" placeholder="price" id="price" />
<p>Result: <span id="result"></span></p>
<button onclick="estcost()">Estimate Cost</button>

关于javascript - 如何让 if/else 语句在函数内部工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54473230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com