嵌套 if - JavaScript
Posted
技术标签:
【中文标题】嵌套 if - JavaScript【英文标题】:Nested if - JavaScript 【发布时间】:2015-09-04 11:13:41 【问题描述】:我希望代码读取 Bz 的输入值,并在等式的答案中打招呼。这就是我到目前为止所拥有的。它不是在计算后给予“问候”。帮忙?
<html>
<body>
<form id="function" onsubmit="return false" oninput="o.value = 3.21 + (9.63 * parseInt(Bz.valueAsNumber))">
3.21+(9.63 *<input name="Bz" type="number" step="any">) =
<output name="o" for="intial set Bz">0</output> nT
</form>
<div id="mys1"></div>
<script language="javascript">
function myMath()
var Bz;
var greeting;
if(Bz>-50)
if (Bz>-30)
greeting = "None";
else
greeting = "Small ";
else
if (Bz> -80)
greeting = "Mild ";
else
greeting = "Large ";
document.getElementById("mys1").innerHTML= greeting;
;
</script>
</body>
</html>
【问题讨论】:
JS中没有else..else
构造,应该是if..else..if..else
...
@Teemu 有两个 if 语句。缩进都搞砸了。
您遇到语法错误,缺少第一个(外部)if
块的结束
。请在发布前检查您的错误控制台,并修复您的缩进。
@BilltheLizard 是的,但是代码中有两个连续的 else
块。
@Teemu 啊,是的,你是对的。我认为他也缺少
。
【参考方案1】:
我发现了你的问题。未加载 Bz 值。设置输入name
属性不会将值存储到变量中。该属性用于表单提交。
你应该做的是:
function myMath()
var Bz = $("input[name='Bz']").val();
...
...
...
【讨论】:
'$' 是 jquery。我的脚本中没有那个。没有jquery还有其他方法吗? 那么,由于某种原因,您不能使用 JQuery 吗? Here 您可以找到如何在没有 JQuery 的情况下定位所需的输入。如果你可以给它分配一个ID,那就是var Bz = document.getElementById("your_input_id").value;
知道了!感谢您的帮助。【参考方案2】:
你从哪里调用你的函数myMath()
?我猜它没有被解雇。
另外,你写if
s 声明的方式也很丑陋。这样会好很多:
if(Bz>-30)
greeting = "Small";
else if(Bz>-50)
greeting = "Mid ";
else if(Bz>-80)
greeting = "Large";
else
greeting = "None";
请注意,我写这篇文章是为了猜测您真正想要的问候信息。请注意,如果满足第一个条件,则根本不会检查其他条件。
【讨论】:
我忘了等式后面的一行代码: 好的,那么问题是你的if
是错误的。如果你向我解释你想要什么问候,在这种情况下,我会为你写 ifs。另外,您的控制台中是否有任何错误?如果有,您也应该将它们添加到您的帖子中
在我将其从最初的格式中取出后,没有显示任何错误。对于 Bz > -80,我希望它迎接大型。对于 Bz > -50,轻度。 Bz > -30,小。假设分析输入并确定最适合的范围。
@maebee_me 好的,我已经修复了答案中的代码。请检查一下。如果该值是任何大于 -30 的值,则问候语很小。如果它介于 -50 和 -30 之间,则该值为中值。如果它介于 -80 和 -50 之间,则为大。如果它小于 -80(因为它不适合任何其他情况),那么问候语是“无”。我希望这对你有帮助,如果你仍然无法做到,请告诉我。
不管数字是多少,唯一显示的是“无”。以上是关于嵌套 if - JavaScript的主要内容,如果未能解决你的问题,请参考以下文章